エンコーダラン:ソースコードのベクトル埋め込みを自動的に生成するためのkubernetesオペレーター

encoder-runソースコードの埋め込みのライフサイクルを自動化するために設計されたKubernetesオペレーターです。また、基礎となるストレージとモデルのインフラストラクチャも管理しています。このプロジェクトにより、ソースコードリポジトリの最新の変更、検索、類似性チェック、RAG、およびコード分析タスクの強化により、ベクターが最新の状態を維持します。
特徴
- モデルの展開:SentenceTransFormer/エンコードモデルを展開して、内部で埋め込みを処理します。
- 継続的同期:ソースコードリポジトリを監視し、更新されたコードのエンコーディングプロセスをトリガーし、埋め込みが最新のままであることを保証します。
- スケーラブルで効率的:パフォーマンスとスケーラビリティのために最適化され、複数のリポジトリと大規模なコードベースの処理を簡単に処理します。
- カスタマイズ可能なエンコーディングモデル:さまざまなエンコーディングモデルをサポートし、ユーザーが特定の要件に最適なものを選択できるようにします。
エンコーダパイプラインアーキテクチャ

はじめる
メモ
- Kubernetesセットアップを実行するための利用可能なメモリがたくさんあることを確認してください。 Docker Desktopリソースをメモリについて確認し、24GB+を確認してください。大きなモデルの重みと大規模なDocker画像の性質により、ディスクが合理的に設定されていることを確認してください。
- 埋め込みの寸法は現在768にハードコーディングされているため、一致しているトランスが展開していることを確認してください。
- ローカル埋め込み時間は、GPUベースのセットアップを使用するよりもはるかに長いです。モデルの最初の要求/応答バッチが遅いこともありますが、その後のリクエストはより速く、より一貫性があります。このセットアップをGPUアクセスを備えたマシンで自由に実行して、推論時間を速めてください。
前提条件
encoder-runを設定する前に、次の前提条件が満たされていることを確認してください。
- Golang :Golandバージョン1.21。*+が必要です。
- Docker :アプリケーションコンポーネントと依存関係をコンテナ化するために必要なため、Dockerをシステムにインストールする必要があります。インストール手順については、Dockerの公式サイトにアクセスしてください。
- Kubernetes Kind :Kindは、ローカルKubernetesクラスターを作成するために使用されます。まだインストールされていない場合は、その存在を確認して、欠落している場合はインストールする
make kind-installを実行できます。 - ノード:ノードは、ローカルで開発している場合にのみ使用されます。 V18.17.0をインストールしてください。
展開
前提条件を満たした後、次のコマンドを使用してアプリケーションを展開します。これにより、ソースからすべての画像が作成されます。初めては10分+かかることがあります。
または、ソースから構築をスキップする(dockerhubから引っ張るにつれてより速く):
このコマンドは、必要なKubernetes構成を設定し、すべてのコンポーネントを起動します。展開すると、それは公開されます:
- Console-UI on
localhost:32081 - LocalHostのゲートウェイ
localhost:32080
モックデータでフロントエンドを実行します
模擬データを使用してフロントエンドインターフェイスを実行するには、次の手順に従ってください。
- Frontend Console-UIディレクトリに移動します。
cd frontend/console-ui
npm install && npm run generate
cd ../mock
npm install
cd ../console-ui
npm run local
このセットアップは、 localhost:3000のUIとlocalhost:4000のMock Gatewayをスピンアップし、開発またはテストのための完全な環境をシミュレートします。
ロードマップ
encoder-runの計画された機能と拡張機能の短いリストは次のとおりです。
問題を開き、GitHubリポジトリにプルリクエストを送信することにより、お気軽に寄付または提案してください。
コミュニティとフィードバック
Encoder-Runはオープンソースプロジェクトであり、貢献を奨励し、歓迎します。貢献したい場合は、貢献ガイドラインと行動規範を確認してください。
インストールとセットアップの問題については、Encoder-Runを使用するのが最善の方法についての議論では、GitHubの問題を使用して、できるだけ詳細に含めるようにしてください。