OpenAI chatbot with memory
OpenAIのAPIを利用したチャットボットの雛形です。sqlite3を利用して、過去の会話ログの記憶を可能としています。
実行方法
共有ライブラリのビルド
まず、native/vector_cosine_similarity.c
を共有ライブラリとしてビルドします。
For MacOS
以下のコマンドを実行して、vector_cosine_similarity.dylib
を生成します。
Warning
gcc
はclang
のエイリアスではなく、本物のgcc
を利用してください。Homebrew経由でインストールした場合は
gcc-11
やgcc-12
のような名前のコマンドになっています。
curl -L "https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=release" --output sqlite3.tgz
tar xvf sqlite3.tgz
cd ./sqlite
./configure
make -j2
sudo cp ./sqlite3 /usr/local/bin/sqlite3
cd ..
gcc -dynamiclib \
-o openai_secretary/plugins/vector_cosine_similarity.dylib \
./native/vector_cosine_similarity.c \
-lm -lsqlite3 -I./sqlite -L./sqlite
For Linux
MacOSと同様のコマンドで vector_cosine_similarity.so
を生成します。
curl -L https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=release --output sqlite3.tgz
tar xvf sqlite3.tgz
cd ./sqlite
./configure
make -j2
sudo ./libtool --mode=install install -c libsqlite3.la /usr/local/lib/
sudo cp ./sqlite3 /usr/local/bin/sqlite3
cd ..
sudo libtool --mode=install install -c ./sqlite/libsqlite3.la /usr/local/lib
gcc-12 -shared -fPIC \
-o openai_secretary/plugins/vector_cosine_similarity.so \
./native/vector_cosine_similarity.c \
-lm -lsqlite3 -I./sqlite/ -L/usr/local/lib
依存関係のインストール
次に、依存関係をインストールします。
poetry install
環境変数の設定
pyproject.toml
と同階層に、 .secret
ファイルを作成します。このファイルの中には、OpenAIのAPIキーを記述します。
echo "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" > .secret
実行
ここまで完了したら、以下のコマンドで実行します。
poetry run python -m openai_secretary
プロンプトのカスタマイズ
openai_secretary/resource/resource.py
の initial_messages
を編集することで、初期のプロンプトの内容を変更できます。
また、同じファイル内の create_initial_context
関数を編集すると、起動時に読み込まれるプロンプトの内容を変更できます。