目次

目次

FastAPI + Assistants API で英単語一問一答チャットボットを作ってみた

小林圭一朗
小林圭一朗
最終更新日2025/11/26 投稿日2023/12/06

この記事はレコチョク Advent Calendar 2023 の 6 日目の記事となります。

はじめに

株式会社レコチョクでバックエンドエンジニアをしている新卒2年目の小林です。 現在は、PythonによるAPIの開発やSolidityによるBlockchainのスマートコントラクトの開発を行っています。 趣味はゲームやアニメで、最近ハマっている曲はTVアニメ「ぼっち・ざ・ろっく!」作中バンドである結束バンドの「ギターと孤独と蒼い惑星」です。 今回は、2023/11/7 の OpenAI DevDay で発表された Assistants API を利用して簡単なチャットボットを作成する方法をまとめました。

Assistants API とは

ChatGPTの新機能の1つで、Assistants APIを利用することで自作のアプリケーションにAIアシスタントを構築することができます。 AIアシスタントは、さまざまなモデルやツールを用いて、ユーザーのリクエストに適切な応答を提供します。 β版(2023/11/22時点) では以下のツールが提供されています。

  • Functions
    • ユーザーのリクエストに応じて定義済みの関数を実行し、回答を生成することができる
  • Code Interpreter
    • GPT内でプログラミングコードを実行できる
  • Retrieval
    • ユーザーがアップロードしたファイルからデータを取得し、それに関する回答を生成することができる

今回は主にRetrievalを利用して簡単なチャットボット形式の英単語一問一答を作成していきます。

開発準備

  1. Pythonの仮想環境作成・起動
    $ python --version
    Python 3.12.0
    
    $ python -m venv env
    $ source ./env/bin/activate
    
  2. FastAPIとUvicorn、OpenAIのインストール
    $ pip install fastapi uvicorn openai
    
    $ pip list
    Package           Version
    ---------------   ------------
    fastapi           0.104.1
    openai            1.3.3
    uvicorn           0.24.0.post1
    
  3. アプリケーションファイル作成 chat.pyファイルを作成し、以下のようにhealth_check関数を作成します。
    from fastapi import FastAPI
    
    app = FastAPI()
    
    @app.get("/")
    def health_check():
      return {"status": "success"}
    
  4. アプリケーションの実行テスト
    $ uvicorn chat:app --reload
    INFO:     Will watch for changes in these directories: ['/path/chat']
    INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
    INFO:     Started reloader process [26279] using StatReload
    INFO:     Started server process [26281]
    INFO:     Waiting for application startup.
    INFO:     Application startup complete.
    
    上記が完了後 http://127.0.0.1:8000 にアクセス。 {“status”: “success”} が出力されていれば開発準備完了。

OpenAI クライアント作成

import openai

api_key = "xxxxxxxxxx"
client = openai.OpenAI(api_key=api_key)

api_key は OpenAI の APIキーとなります。 OpenAIアカウント作成後、こちらから作成・取得することができます。 セキュリティ上のリスクを避けるため、APIキーは公開されることのないように保管してください。

小林圭一朗

目次