Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
勉強会4_アップデートされたAssistantsAPIを試す
Search
milky04
May 19, 2024
Programming
2.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
勉強会4_アップデートされたAssistantsAPIを試す
社内勉強会資料です(2024/5/17)
milky04
May 19, 2024
More Decks by milky04
See All by milky04
勉強会5_画像生成AIの仕組みと学習・i2i対策
milky04
0
290
勉強会2_機械学習のモデル学習と開発について
milky04
0
95
勉強会3_LLMを活用する技術について
milky04
0
110
勉強会1_SlackのAIチャットボットを作ってみた
milky04
0
94
Other Decks in Programming
See All in Programming
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
160
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
残高管理から台帳サービスへの進化
artoy
1
200
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
800
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
0
130
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.7k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
APNsからLive Activityを開始する話
yumnumm
0
170
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
Domain-Driven Transformation
hschwentner
2
2.3k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
109
250k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
360
Transcript
アップデートされたAssistants APIを試す
はじめに • 2024年4月にOpenAIのAssistants APIがv1→v2へアップデートされた。 →それにより新機能追加や改善され、アプデ前にあった料金がかなりか かってしまう問題も解決されたため試したい。 ※上記問題があったため、アプデ前のは試していない。
Assistants APIとは① • さまざまなタスクを実行できる強力な「AIアシスタント」を作成するためのAPI。 ※現在PythonとNode.jsで使用可能 • アシスタントは、特定の指示を設定することでOpenAIのモデルを呼び出し、その個性や能 力を調整することが可能。 ※OpenAIのAPIのため、使用可能なモデルはOpenAIのものに限られる。 •
現在「file_search(旧Retrieval)」「code_interpreter」「function_calling」の3つのツールをサ ポートしている。アシスタントはこれら複数のツールに同時にアクセスが可能。 ※ツールについては後述
Assistants APIとは② • アシスタントは永続的なスレッドにアクセスすることが可能。スレッドはメッセージの履歴を 保持し、会話がモデルのコンテキスト長を超える場合には切り捨てることで、AIアプリケー ション開発を容易にする。一度スレッドを作成すると、ユーザーが返信する際にはメッセー ジをスレッドに追加するだけ。 ※コンテキスト長:保持可能なトークン数 ※スレッドは会話セッションのことを指す。1つのアシスタントで複数の会話履歴を管理可能。 例えばChatBotで利用ユーザー毎にスレッド作成し、別々に会話履歴を保持することが可能。
• アシスタントは、作成の過程やアシスタントとユーザ間のスレッドの一部として、様々な形 式のファイルにアクセスが可能。ツールを使用する場合、アシスタントはファイル(画像、ス プレッドシート等)を作成し、メッセージ作成時に参照するファイルを引用することも可能。
file_search(旧Retrieval) • 独自の製品情報やユーザーから提供されたドキュメントなど、モデルの外部からの知識で アシスタントを強化する。 • ドキュメントを自動的に解析してチャンク化し、埋め込みを作成して保存し、Vector検索と キーワード検索の両方を使用して関連コンテンツを取得してユーザーからの質問に答える。 ※チャンク化:多くの情報や知識を小さなまとまり(チャンク)に分割して処理する技術のこと。 ※Vector検索(類似性検索):外部情報を事前にVector化したうえでVectorDBに保持してお き、inputと近しいVectorである情報がinputと関連性が高いとして回答に使用する
※サポートされているファイルについては以下(txt、docx、pdf、csv、pyなど) https://platform.openai.com/docs/assistants/tools/file-search/supported-files
file_search(旧Retrieval)の問題点 • AIアシスタントが返答する際に、用意したファイルをうまく参照してくれない 場合があるらしい。 • また、 file_searchする場合、通常の応答よりも返答が遅くなり、費用がか かってしまう。
code_interpreter • サンドボックス化された実行環境でPythonコードを記述し、実行することが可能。 ※サンドボックス:通常利用領域から隔離された仮想環境。 • 様々なデータやフォーマットのファイルを処理し、データやグラフの画像を含むファ イルを生成可能。 • アシスタントは、実行に失敗するコードを生成した場合、コードの実行が成功する まで別のコードの実行を試みるなど、ある程度自律的に動作をすることが可能。
function_calling • アシスタントに関数定義を追加しておくことで、呼び出す必要がある場合に、 関数呼び出しの要求を返すことが可能。 • 例:直近の天気を取得する関数、Web検索により外部情報を取得する関数 など
アップデートによる新機能/改善点① • file_searchの性能向上(旧Retrieval) アプデ前までは1つのアシスタントに20個までしかファイルを指定できなかった。 →アプデにより、10000個まで可能になった。正確性と速度も向上したとのこと。 file_searchと並行して、「vector_store」が追加された。ファイルがvector_storeに追 加されると、自動的に解析や分割、埋め込みが行われ、検索可能な状態となる。 vector_storeはアシスタント間で共有可能。 ※埋め込み:2つのテキスト間の関連性を測定するために使用できるテキストの ベクトル表現。2つのベクトル間の距離によって、それらの関連性が測定される。
アップデートによる新機能/改善点② • スレッドのメッセージ保持上限が指定可能になった アプデ前までは1つのスレッドのメッセージ保持上限が指定できなかった。 そのため、1度作ったスレッドでは過去全てのメッセージが履歴として使用される ため、会話が伸びると費用が膨大になってしまうという問題があった。 →アプデにより、1つのスレッドに何件まで過去のメッセージを含めるかを指定 可能となった。 ※メッセージ保持上限を超えた場合は、最も古いメッセージがスレッドから削除 される。
アップデートによる新機能/改善点③ • 特定の実行で使用するツールの指定が可能になった アプデ前まではアシスタントが持っているツールは、自動的に全ての実行で使 用される可能性があった。 →アプデにより、アシスタントの持っているツールのうち、どれを使用するかを 特定の実行毎に指定することが可能になった。これで思わぬところで不要な ツールを使用してしまう事故が防げる。 その他、特定の実行毎に指定できるパラメータ(tempreture、JSONモードなど)が 増えたので、アプデ前よりも柔軟なタスクに対応可能となった。
その他アップデートによる新機能/改善点 • 使用するトークンの上限が指定可能になった。 • ファインチューニングモデルが利用可能になった。 • ストリーミングが利用可能になった。 • 「Node.js SDK」と「Python
SDK」に、「Streaming Helper」と「Polling Helper」が追加された。 ※Helper:アシスタントと対話する際の応答をサポートするためのもの。Streamingはリ アルタイムで遂次的に応答を出力。Pollingは一定の間隔で定期的にAPIの更新状態を 確認し、終了状態になったら一度に応答を出力。
Assistants APIを使用したChat botを試す • 今回は主にfile_search、code_interpreter、スレッドによる会話履歴保持を試します。 • 今回はWebアプリ起動時に一度だけスレッドを作成しています。この場合、Webア プリ終了時にスレッドは破棄されます。 ※Webアプリ終了してから再起動した際にも、Webアプリ終了前のスレッドが保持 されるようにすることが可能かは未確認。
• Chat botはPythonでStreamlitを使用して作成。 ※Streamlit:Pythonで簡単にWebアプリケーションを作成できるオープンソースのライ ブラリ。
おわりに • Assistants APIは手軽に使用でき、 こちらで機能を用意せずともAPI利用することで様々な機 能が使用出来ました。そのため、Assistants APIを使用することで容易にAIアプリケーション 開発が可能になります。 • 今回紹介しませんでしたが、LangChainというライブラリがあり、LangChainでもAssistants
API で提供されているような機能を実現可能です。 • LangChainとAssistants APIにはそれぞれ違いやメリット/デメリットがあるため、シチュエー ションに応じてどちらが良いかを判断して使用すると良さそうかなと考えています。 • Assistants APIの今後のアップデートにも期待。 ※LangChainについて気になった方は調べてみてください。
参考 • https://platform.openai.com/docs/assistants/overview • https://platform.openai.com/docs/assistants/whats-new • https://note.com/nike_cha_n/n/n21fe47546e8d#23075f74-115c-4292-839b- 90cc0086f8b9 • https://note.com/npaka/n/n4438384c96d0
• https://developer.mamezou-tech.com/blogs/2024/04/21/openai-file-search-intro/ • https://note.com/mahlab/n/nba20ea09648d#1f2aff74-c918-483b-a195- 73658f107252