セマンティックにメッセージを検索できるシンプルな不一致ボット。
Word EmbeddingsとVector Databasesについて学びたかったので、このプロジェクトを始めただけなので、私がそれを終えるかどうかはわかりません。使用したい場合は、自分でホストする方法を把握する必要があります。
これは明らかにまだ進行中の作業です。特にデータベース側では、まだ多くの作業が必要です。ベクトルデータベースは比較的使いやすいですが、メンテナンスは困難です。
また、私がそれを不一致のボットとしてフレーム化した理由は、私がプラットフォームを愛しているのと同じくらい、その検索機能はそれほど良くないからです。他の人が使用できるようにこのボットをホストできるポイントに到達するかどうかはわかりませんが、もしそうなら、このセクションを更新します。
最後に、タイプスクリプトの経験があまりないので、適切な抽象化/構造を使用しているかどうかはわかりません。ただし、データベースと埋め込みサービスを簡単に交換できるように、抽象化を活用しようとしました。提案がある場合は、お知らせください。
その主な目的は、サーバーにあることがわかっているメッセージを見つけるのを助けることです(またはそうでない)が、それらがどのように表現されたかを正確に覚えていないことです。 OpenAIのADAモデルを使用して、各メッセージの埋め込みを生成し、ベクトルデータベース(QDRANT)に保存します。
その後、特定のクエリと意味的に類似したメッセージを検索できます。
Discord Botを作成してサーバーに追加する必要があります。
また、OpenAIアカウントを作成してAPIキーを取得する必要があります。
cp .env.template .env # And fill in the missing valuesノードとDockerがインストールされていると仮定すると、次のコマンドを実行して開発モードでボットを起動できます。
npm install
npm run commands:deploy # Deploys bot commands to your dev server (you need to do this every time you add a new command)
bash start-db.sh # Starts a docker container with a vector database
npm run start:dev