登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 Openai
Openai コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
Openai を含む検索結果
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェントの「お財布事情」を可視化しましょう。トークン使用量の追跡で、テナント別課金もステップ別モニタリングも実現できます。 Usage API を使えば、実行全体のトークン消費量から、ツール呼び出し・ハンドオフごとの内訳まで、きめ細かくコストを把握できます。 📌 タイトル:Usage 🔗 URL: 🧩 概要 OpenAI Agent SDK の Usage 機能は、エージェント実行のトークン消費を追跡するための仕組みです。`result.context_wrapper.usage` で実行全体の合計トークン数を取得でき、`result.context_wrapper.usage.request_usage_entries` でステップごと(ツール呼び出し・ハンドオフ・ガードレール)の内訳を確認できます。さらに RunHooks の `on_agent_end` でリアルタイムにログを記録したり、サードパーティモデル使用時に `ModelSettings(include_usage=True)` で使用量レポートを有効化したりできます。 🛠 使い方 `Agent(name="Assistant", instructions="ユーザーの質問に回答してください。")` でエージェントを作り、`result = await "量子コンピュータについて教えてください")` を実行します。` で合計・入力・出力トークン数を取得できます。`result.context_wrapper.usage.request_usage_entries` をループすれば、各リクエストの `entry.input_tokens` と `entry.output_tokens` でステップごとの内訳も確認できます。 🏗 実践的な使い方 **テナント/ユーザー別コスト計算** SaaS で「テナントごとにいくら使ったか」を記録し、課金や予算管理に活用するパターンです。 `handle_request(tenant_id, user_id, message)` のような関数で `result = await message)` を実行し、`calculate_cost(model="gpt-4.1", input_tokens=result.context_wrapper.usage.input_tokens, output_tokens=result.context_wrapper.usage.output_tokens)` でコストを算出、`await billing_db.record(tenant_id=tenant_id, user_id=user_id, total_tokens= cost_usd=cost, timestamp= でテナント別に記録します。 **ステップ別モニタリング** `request_usage_entries` で、どのツール呼び出しやハンドオフがトークンを消費しているかを特定します。 `result = await "売上レポートを作成して")` の後、`result.context_wrapper.usage.request_usage_entries` を `enumerate` でループし、各ステップの `entry.input_tokens` と `entry.output_tokens` を確認します。`entry.input_tokens > 5000` のような閾値で警告を出せば、トークン消費の多いステップを特定できます。 **RunHooks でリアルタイムログ** `on_agent_end` フックでエージェント終了時に使用量をログに記録します。 `RunHooks` を継承した `UsageLoggingHooks` クラスを作り、`on_agent_end(self, context: RunContextWrapper, agent: Agent, output)` メソッドで `context.usage` からトークン使用量を取得し、`"agent_completed", agent_name= total_tokens= ...)` で構造化ログに記録します。`await "質問", hooks=UsageLoggingHooks())` のように `hooks` パラメータで渡します。 **サードパーティモデルでの使用量レポート有効化** OpenAI 以外のモデルアダプタを使う場合、明示的に使用量レポートを有効にする必要があります。 サードパーティモデルでは `Agent(name="ThirdPartyAgent", instructions="...", model=my_custom_model_adapter, model_settings=ModelSettings(include_usage=True))` のように `ModelSettings(include_usage=True)` を明示的に設定して、使用量レポートを有効化します。 💡 ユースケース 💰 テナント別・ユーザー別のトークン消費をDBに記録し、従量課金の基盤を構築 📊 request_usage_entries でステップ別のトークン消費を可視化し、コスト最適化のボトルネックを特定 🔔 RunHooks の on_agent_end で使用量を構造化ログに記録し、リアルタイムでダッシュボード監視 🔌 サードパーティモデル利用時に ModelSettings(include_usage=True) で使用量追跡を漏れなく有効化 ⚠️ 注意点 - ` はリトライやガードレール再実行分も含まれるため、表示上のステップ数より多くなる場合があります。 - サードパーティモデルでは `include_usage=True` を設定しないと使用量がゼロで返ることがあります。アダプタのドキュメントを確認してください。 - コスト計算はモデルの料金体系に依存します。モデルごとの入力/出力トークン単価を正確に反映させましょう。 ✨ トークン使用量を3つのレベル(合計・ステップ別・フック)で追跡すれば、コスト管理も品質監視も万全です。まずは result.context_wrapper.usage から始めて、必要に応じてステップ別やフックでの追跡を追加していきましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 エージェントの会話履歴に機密情報が含まれているのに、平文で保存していませんか? EncryptedSessionを使えば、会話データをFernet暗号化で保護し、TTLによる自動失効も設定できます。 📌 タイトル:暗号化セッション (EncryptedSession) 🔗 URL: 🧩 概要 `EncryptedSession` は、任意のセッションバックエンドを `underlying_session` としてラップし会話データを暗号化するドロップインラッパーです。Fernet暗号化を採用し、HKDF(info 文字列 `"agents.session-store.hkdf.v1"`、salt は session_id)によるセッションごとの鍵導出でセッション間の暗号分離を実現します。`ttl`(既定 600 秒)を超えた項目は取得時に自動的にスキップされます。マスターキーには `Fernet.generate_key()` などの高エントロピーな値を使います(生の文字列も互換性のため受け付けますが、パスワードのような低エントロピーの秘密は不適切です)。 🛠 使い方 ```python import os from cryptography.fernet import Fernet from agents import SQLiteSession from agents.extensions.memory import EncryptedSession # 基底セッションを暗号化でラップ base_session = SQLiteSession("chat-001", "sessions.db") # マスターキーは Fernet.generate_key() などの高エントロピーな値を使う encryption_key = Fernet.generate_key().decode("ascii") encrypted = EncryptedSession( session_id="chat-001", underlying_session=base_session, encryption_key=encryption_key, ttl=3600, # 1時間で失効(既定は 600 秒) ) # 永続化する場合は同じキーを Secret Manager 等から読み込んで再利用する encrypted = EncryptedSession( session_id="chat-001", underlying_session=base_session, encryption_key=os.environ["SESSION_ENCRYPTION_KEY"], ttl=7200, ) # 通常のセッションと同じインターフェースで利用可能 items = await encrypted.get_items() ``` 🏗 本番システムへの組み込み方 ・医療・金融など規制業界のコンプライアンス要件に対応する ・HKDFによりセッションごとに異なる暗号鍵が導出されるため、1セッションの漏洩が他に波及しない ・TTLを設定して、一定期間後に復号不能にする「暗号学的データ消去」を実現する ・既存のSQLiteSession / RedisSession等をそのままラップでき、移行コストが極めて低い 💡 ユースケース 🏥 医療情報を含む会話の暗号化保存 🏦 金融データを扱うエージェントのセキュリティ強化 🔐 GDPRの「忘れられる権利」対応(TTL失効) 🛡 マルチテナント環境でのセッション間データ分離 ⚠️ 注意点 利用には `pip install 'openai-agents[encrypt]'` で `encrypt` extra をインストールしてください。暗号化されたデータに対しては `find_turns_by_content()` などの内容検索が機能しません。検索が必要な場合は検索用のインデックスを別途管理する必要があります。また、暗号鍵を紛失するとデータが復元不能になるため、鍵の安全な管理(Secret Manager等)が必須です。`encryption_key` を変更しても既存レコードは再暗号化されないため、古いデータの復号には元のキーが必要です。 ✨ EncryptedSessionで、会話データの保護をコード1行で実現しましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェントに必要な情報を型安全に注入しましょう! Local contextを使えば、ユーザー情報やロガー、データフェッチャーを依存注入のように渡せます。 📌 タイトル:Context management – Local context 🔗 URL: 🧩 概要 OpenAI Agent SDKのLocal context機能は、エージェントとツールに対して型安全な依存注入を提供します。`context`パラメータにPydanticモデルやdataclassを渡すことで、ツール関数内からユーザー情報やロガー、外部サービスのクライアントにアクセスできます。`Agent[UserInfo]`のジェネリック型により、コンテキストの型不一致をコンパイル時に検出できます。 🛠 使い方 `dataclass` で `UserInfo(uid, name, is_premium)` を定義し、`@tool` デコレータ付きの関数で `ToolContext[UserInfo]` を受け取ります。例えば `get_recommendations(wrapper: ToolContext[UserInfo], category: str)` では `wrapper.context` からユーザー情報にアクセスし、` に応じてプレミアム/通常のおすすめを返せます。`debug_tool` では `wrapper.tool_name`、`wrapper.tool_call_id`、`wrapper.tool_arguments` でデバッグ情報を取得できます。エージェントは `Agent[UserInfo]` のジェネリック型で定義し、`Agent(name="personal_assistant", instructions="ユーザーに合わせた回答をしてください", tools=[get_recommendations, debug_tool])` のようにツールを登録します。実行時は `UserInfo(uid="u_12345", name="田中太郎", is_premium=True)` を作り、`await "おすすめの本を教えて", context=user)` で渡します。 より実践的には、`AppContext` dataclass に `user: UserInfo`、`logger: logging.Logger`、`db: DatabaseClient`、`feature_flags: dict[str, bool]` をまとめます。`fetch_order_history(wrapper: ToolContext[AppContext], limit: int = 10)` では `ctx = wrapper.context` でコンテキストを取得し、` でログ出力、`ctx.feature_flags.get("new_order_api")` でフィーチャーフラグに応じた分岐、`ctx.db.get_orders(ctx.user.uid, limit)` でDB問い合わせを行います。`Agent[AppContext]` として `Agent(name="order_assistant", tools=[fetch_order_history])` を定義します。 🏗 実践的な使い方 Local contextの最大の価値は、ツール関数をピュアなビジネスロジックに保てることです。ユーザー情報やDBクライアントをグローバル変数で参照する代わりに、contextから注入することで、テスタビリティが大幅に向上します。テスト時にはモックのコンテキストを渡すだけです。 `ToolContext`の`tool_name`、`tool_call_id`、`tool_arguments`は、構造化ログに不可欠です。どのツールがどの引数で呼ばれたかをトレースでき、本番環境のデバッグが容易になります。 `Agent[UserInfo]`のジェネリック型を使うと、型チェッカー(mypy等)がコンテキストの型不一致を検出します。例えば、`Agent[UserInfo]`に`AppContext`を渡そうとするとコンパイルエラーになります。これにより、ランタイムエラーを防げます。 フィーチャーフラグや設定値もコンテキスト経由で渡すパターンが有効です。環境ごとに異なる挙動を、コンテキストの値で制御できます。 💡 ユースケース 👤 ユーザーのプレミアム/フリー区分に応じたパーソナライズ 📝 tool_call_idを使った構造化ログとトレーシング 🧪 テスト時のモックコンテキスト注入によるユニットテスト 🚩 フィーチャーフラグによるツールの挙動切り替え ⚠️ 注意点 - コンテキストにシークレット(APIキー等)を含めると、ステートのシリアライズ時に漏洩する可能性があります - コンテキストオブジェクトは実行中に共有されるため、ミュータブルな状態の変更はスレッドセーフに注意してください - `Agent[T]`のジェネリック型チェックは静的解析ツール依存です。ランタイムでは強制されません - 巨大なオブジェクト(大量データ等)をコンテキストに入れるとメモリ効率が悪化します ✨ Local contextにより、クリーンなアーキテクチャでテスタブルなエージェントが構築できます! #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 会話の途中から「もしあの時違う回答をしていたら?」と試したくなったことはありませんか? AdvancedSQLiteSessionの会話ブランチング機能を使えば、会話履歴の任意の地点から分岐を作り、代替パスを探索できます。 📌 タイトル:AdvancedSQLiteSession の会話ブランチング 🔗 URL: 🧩 概要 `AdvancedSQLiteSession` は、ターン番号や検索語句を指定して会話を分岐させる機能を備えています。`create_branch_from_turn(turn_number)` で特定のターンから、`create_branch_from_content(search_term)` で特定の内容を含むターンから分岐を作成できます。`list_branches()` で一覧、`switch_to_branch()` で切替、`delete_branch()` で削除も可能です。 🛠 使い方 ```python from agents.extensions.memory import AdvancedSQLiteSession session = AdvancedSQLiteSession( session_id="chat-001", db_path="sessions.db", create_tables=True, # 既定は False。ブランチ用テーブルの作成に必要 ) # ターン3の時点から新しいブランチを作成 branch_id = await session.create_branch_from_turn(turn_number=3) # 特定のキーワードを含むターンからブランチを作成 branch_id = await session.create_branch_from_content("APIの設計について") # ブランチの管理 branches = await session.list_branches() await session.switch_to_branch(branch_id) await session.delete_branch(branch_id, force=True) # 現在のブランチを削除するには force=True ``` 🏗 本番システムへの組み込み方 ・ユーザーが「やり直したい」と言った際に、直前のターンからブランチを作成して再試行する ・エージェント評価で、同じ入力に対して複数の応答パスを比較分析する ・顧客サポートで、異なる解決策を並行で探索し最適なものを選ぶ ・会話のチェックポイントとしてブランチを活用し、重要な分岐点を記録する 💡 ユースケース 🔀 会話の「what-if」分析 🧪 エージェント応答品質のA/Bテスト 🎯 複数の解決策パスの並行探索 📝 会話履歴のチェックポイント管理 ⚠️ 注意点 ブランチが増えるとストレージ使用量が増加します。不要なブランチは定期的に `delete_branch()` で削除してください(現在のブランチを消す場合は `force=True`、`main` は削除できません)。ブランチ ID はセッション ID の生存期間中ユニークで、削除やセッションのクリア後も再利用できないため、新しいブランチには別の名前を付けます。また、ブランチ間の切り替え時にコンテキストの混乱が起きないよう、ブランチのラベル管理を適切に行いましょう。 ✨ 会話ブランチングで、エージェントとの対話に「タイムトラベル」の自由を加えましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 無制限に膨らむ履歴はコストとレイテンシの敵です! 履歴の制御と圧縮機能を使って、コンテキストサイズを最適に保ちましょう。 📌 タイトル:Sessions – Control history / Compaction 🔗 URL: 🧩 概要 長期間のセッションでは会話履歴が肥大化し、トークンコストの増大やレイテンシの悪化を招きます。SessionSettingsの`limit`で直近N件に制限したり、`session_input_callback`でカスタムのトリミング・並び替えを行ったりできます。OpenAIResponsesCompactionSessionを使えば自動圧縮も可能で、手動の`run_compaction()`でアイドル時に最適化することもできます。 🛠 使い方 最もシンプルな方法は `SessionSettings(limit=50)` です。`Agent(name="assistant", instructions="丁寧に回答してください")` でエージェントを作り、`SQLiteSession("user_12345")` でセッションを生成したうえで、`await "最新の話題は?", session=session, run_config=RunConfig(session_settings=SessionSettings(limit=50)))` のように `RunConfig` の `session_settings` に渡せば、取得する履歴が直近50件に制限されます。 より高度な制御には `session_input_callback` を使います。例えば `custom_history_filter(history, new_input)` 関数を定義し、`h.role == "system"` のシステムメッセージは常に保持、通常のやり取りは `history[-20:]` で直近20件に絞り、`return filtered + new_input`(`new_input` はリストです)で新しい入力と合わせて返すロジックが書けます。`await "...", session=session, run_config=RunConfig(session_input_callback=custom_history_filter))` のように設定します。 自動圧縮には `OpenAIResponsesCompactionSession` を使います。`underlying = SQLiteSession("user_12345")` を用意し、`OpenAIResponsesCompactionSession(session_id="user_12345", underlying_session=underlying)` でセッションを作り、`await "これまでの議論をまとめて", session=session)` を実行すると、長い会話が自動的に要約・圧縮されます。 手動で圧縮を実行する場合は、`OpenAIResponsesCompactionSession(session_id="user_12345", underlying_session=underlying, should_trigger_compaction=lambda _: False)` で自動圧縮を無効化したセッションを作り、`await "force": True})` を呼び出します。ユーザーのアイドル時間に実行すれば、次回リクエスト時のレイテンシが改善されます。 🏗 実践的な使い方 `SessionSettings(limit=50)`は最もシンプルなコスト制御です。セッションから取得する履歴が直近50件に絞られ、それより古い履歴はモデルへの入力に含まれません(既定の`limit=None`では全件取得します)。カスタマーサポートのように直近のやり取りが重要なケースに適しています。 `session_input_callback`は、より高度な制御が必要な場合に使います。例えば、システムメッセージやVIP顧客のフラグは常に保持しつつ、通常のやり取りは直近20件に絞るといったロジックが書けます。ストレージ自体は変更せず、LLMに送る入力だけをフィルタリングする点がポイントです。 `OpenAIResponsesCompactionSession`は自動圧縮を行います。長い会話を要約して短い表現に置き換えることで、コンテキスト窓を効率的に使います。 Streaming重視のアプリケーションでは、ユーザーのアイドル時間に`run_compaction()`を手動実行するパターンが有効です。次のリクエスト時には圧縮済みの履歴から開始できるため、初回トークンまでのレイテンシが改善されます。 💡 ユースケース 💰 limit設定によるトークンコストの上限管理 🔧 カスタムコールバックで重要なコンテキストだけを選択的に保持 📦 自動圧縮による長時間セッションのコンテキスト最適化 ⚡ アイドル時のcompactionによるStreaming-firstレイテンシ改善 ⚠️ 注意点 - `limit`は取得件数の制限であり、セッションに保存された履歴自体は削除されません。ただしlimitを超えた情報はモデルに渡らないため、値は慎重に設定してください - `session_input_callback`はリクエストごとに呼ばれるため、重い処理は避けてください - 自動圧縮は要約精度に依存します。正確な数値や固有名詞が失われる可能性があります - `run_compaction()`はAPIコールを伴うため、頻繁に呼ぶとコストが増加します ✨ 適切な履歴制御により、長時間セッションでもコストとレイテンシを最適に保てます! #OpenAIAgentSDK# #AIAgent#
もっと見る
OpenAIの「暴走」サイバー攻撃、防御は中国製AI頼みだったw → 評価テスト中に実験環境を自力で脱出 悪用防止機能が防御側の足かせになりました。
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 会話履歴の管理を手動でやるのはもう終わりです! Sessionを使えば、履歴の自動管理、ユーザーごとの分離、エージェント間の共有が簡単に実現できます。 📌 タイトル:Sessions – Overview 🔗 URL: 🧩 概要 OpenAI Agent SDKのSession機能は、会話履歴の自動管理を提供します。これまで手動で`to_input_list()`を呼んで履歴を構築していた作業が不要になります。セッションIDによる整理されたユーザー/スレッド別履歴管理、異なるエージェント間でのセッション共有、`pop_item()`による直前の質問のやり直しなど、実践的な機能が揃っています。 🛠 使い方 まず `Agent`, `Runner`, `SQLiteSession` をインポートし、`Agent(name="assistant", instructions="丁寧に回答してください")` でエージェントを作成します。`SQLiteSession("conversation_123")` でセッションを生成し(`db_path` を省略するとインメモリになります)、`await "Pythonについて教えて", session=session)` で最初の質問を実行、続けて `await "もっと詳しく", session=session)` で追加質問すると、履歴が自動的に引き継がれます。`await session.pop_item()` で最後のやり取りを削除し、`await "別の角度から説明して", session=session)` でやり直しができます。 `db_path` を指定すれば永続化も簡単です。`SQLiteSession(session_id="user_12345/thread_abc", db_path="sessions.db")` でユーザー/スレッド別セッション、`SQLiteSession(session_id="ticket_456", db_path="sessions.db")` でチケット別セッションを作成できます。異なるエージェント間での共有も可能で、`shared_session = SQLiteSession(session_id="user_12345/current")` を作り、`await "請求について質問があります", session=shared_session)` の後に `await "詳細を教えてください", session=shared_session)` を呼べば、サポートから請求エージェントへ履歴を引き継いだエスカレーションが実現できます。 🏗 実践的な使い方 セッションIDの命名規則を統一することで、履歴の検索と管理が容易になります。`user_{id}/thread_{id}`のように階層的なIDを使えば、あるユーザーの全スレッドや特定のスレッドの履歴を効率的に取得できます。 `pop_item()`は「やり直し」機能の実装に最適です。ユーザーが質問を修正したい場合、直前のやり取りを削除して新しい質問で再実行できます。 異なるエージェント間でセッションを共有するパターンは、サポート→請求→技術のようなエスカレーションフローで強力です。ユーザーが同じ説明を繰り返す必要がなくなり、引き継ぎがスムーズになります。 `session`パラメータを使うことで、従来の`to_input_list()`による手動履歴管理が不要になります。これだけでもコードが大幅にシンプルになります。 💡 ユースケース 💬 チャットボットでのユーザーごとの会話履歴管理 🔄 「やり直し」ボタンによる直前の質問の修正 🤝 サポート→請求→技術のエスカレーション時の履歴共有 📋 チケットIDごとの対応履歴の記録と参照 ⚠️ 注意点 - セッションIDは一意になるよう設計してください。衝突すると異なるユーザーの履歴が混ざります - 長期間のセッションではコンテキストが肥大化します。後述のhistory制御と組み合わせてください - セッションを共有する場合、全てのエージェントが相手の出力を理解できる前提が必要です ✨ Session機能により、会話の継続性が自動化され、マルチターン・マルチエージェントの会話がシンプルに実装できます! #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 MCPサーバーへのツール一覧取得が毎回ネットワークコールになっていませんか? `list_tools()` のキャッシュを有効にすれば、安定したツール定義の再取得を省略し、レイテンシを大幅に削減できます。 📌 タイトル:list_tools() のキャッシュ 🔗 URL: 🧩 概要 MCPサーバーのツール定義が頻繁に変わらない場合、毎回 `list_tools()` をネットワーク越しに呼ぶのは無駄です。`cache_tools_list=True` を設定するだけで、ツール一覧をメモリにキャッシュし、2回目以降の取得を高速化します。ツール定義を更新した場合は `server.invalidate_tools_cache()` で明示的にキャッシュをクリアできます。 🛠 使い方 ```python from agents.mcp import MCPServerStreamableHttp # ツール一覧のキャッシュを有効化 server = MCPServerStreamableHttp( params={"url": ""}, cache_tools_list=True, ) async with server: # 初回はネットワーク呼び出し、2回目以降はキャッシュから取得 tools = await server.list_tools() # ツール定義が変わった場合にキャッシュをクリア server.invalidate_tools_cache() tools = await server.list_tools() # 再取得される ``` 🏗 本番システムへの組み込み方 ・ツール定義が安定しているMCPサーバーには必ず `cache_tools_list=True` を設定する ・デプロイ時やツール更新時に `invalidate_tools_cache()` を呼んでキャッシュをリフレッシュする ・複数エージェントが同一サーバーを共有する場合、キャッシュにより全体のレイテンシが改善される ・ヘルスチェックのタイミングでキャッシュを定期的にリフレッシュする運用も有効 💡 ユースケース ⚡ 高頻度でエージェントを呼び出すチャットアプリのレスポンス改善 🔄 マルチターン会話でのツール一覧取得のオーバーヘッド削減 🏢 安定したツールセットを持つ社内MCPサーバーの最適化 📉 MCPサーバーへのリクエスト数削減によるコスト最適化 ⚠️ 注意点 キャッシュを有効にすると、MCPサーバー側でツールが追加・削除されても反映されません。ツール定義が動的に変わる環境では、適切なタイミングで `invalidate_tools_cache()` を呼ぶか、キャッシュを無効のままにしてください。 ✨ シンプルなフラグ一つで、MCPツール取得のオーバーヘッドを解消しましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
OpenAIが、未公開の内部モデルに未解決の数学問題を解かせた成果物をまるごと公開しました。 タイトル: openai/math URL: ❓ 何が公開されたのですか? 722本の数学原稿が372のファミリーに整理されて置かれています。評価期間を通じてモデルには約4,000問が提示され、結果の大多数は同一手順で得られたものです。ライセンスはApache-2.0で、各原稿にはPDFとソース、引用情報が揃っています。 ❓ なぜ公開したのですか? 既存のベンチマークで性能が頭打ちになったためです。すでに答えが分かっている問題では測れなくなったので、評価の対象を未解決の研究課題へ広げた、という経緯が記されています。1つの結果あたり平均でおよそ3時間の思考計算が費やされました。 ❓ 内容の正しさは保証されているのですか? ここが最も重要な点で、保証されていません。READMEは「収録されているのは検証段階がそれぞれ異なる結果」であり「すべてにLeanによる形式化が付いているわけではない」「形式化されていない結果には問題が含まれている可能性がある」と明記しています。索引では形式化済みの結果にLeanへのリンクが付き、どれが計算機検証を伴うか識別できるようになっています。 ❓ リーマン予想が解けたということですか? 違います。例外として挙げられているのはゼータ関数のゼロ自由領域に関する部分的な結果と、CMアーベル多様体という特定クラスに限ったホッジ予想の証明です。いずれも予想そのものの解決ではありません。前者の書き上げは可読性のため人手で編集されたとも記されています。 #数学# #OpenAI#
もっと見る
OpenAIの「GPT-6 Astra」、エニグマに続きナポレオンの暗号書簡も解読 → 155種類の記号による約1300文字を約6時間で解析 低解像度のスキャン画像1枚から解析を進めました。
もっと見る