My Project と My Experience with Cursor に RAG レイヤーを挿入する トップ > DR わたし LangChain-MySQL プロジェクトでは、多段階の LangChain エージェントが MySQL で自然言語の質問をすることを可能にする方法を示しました。 まずは article まずは 記事 What’s new in Part 2: 必要なスケジュールのブランクだけをロードします - 列、キー、インデックス - したがって、プロンプトが縮小し、遅延が低下します。 Persistent FAISS vector store - ユニット、統合、およびmock-DB テストを CI に接続 - 生産に到達する前に、スキーマドリフおよびリクエストエッジケースをキャッチします。 Comprehensive test suite ベクターDBに外部キー関係を追加し、スケジュール表示を改善し、トークンの使用量を減らす。 LLM rate‑limit resolution — 私たちが潜入する前に、ここに第1部の2つのショー・ストッパーがあります。 Problem 1 — LLM Lost in Table Relationships LLMはあなたのテーブルがどのようにつながっているかを知らない - あなたは、それぞれのプロンプトですべての加入パスを手で書き出します。 Problem 2 — Schema Bulk Breaks Rate Limits あなたのプロンプトにデータベースの完全なスケジュールを投げ込むことは、トークンを消費し、あなたが答えを得る前にOpenAIの429のエラーをほとんど常にトリップします。 調査と解決: What is a Vector Database? A is a specialized data store designed to hold and query. を保持し、クエリするように設計されたデータストアです。 従来の行と列の代わりに、 vector database vector representations Integrating the Vector Database データベースのすべてのスケジュールメタデータ(DDL、PK/FK関係、インデックス情報、コメント)は、豊富なドキュメントに引っ張り込まれて、フラッシュスピードのセマンティックな検索のためにFAISSに埋め込まれ、持続します。 Why FAISS? LLMはFAISSを提案しました。 私も利用できます♪ あるいは それぞれが埋め込まれたストレージと高速回収をサポートし、このプロジェクトの要件を満たすことができます。 FAISS クロアチア クロアチア ワイワイ (Facebook AI Similarity Search)は、MetaのFundamental AI Researchグループが開発したオープンソースのライブラリで、効率的な類似性検索と密集ベクターのクラスター化を目的としています。 FAISS What I Store: More Than Just a Table Blueprint? 重要なことに、私はこのベクトルデータベースにテーブルや列名などの基本的なスケジュールの詳細を保存するだけでなく、これらのテーブルがどのように接続するかを定義する外部キー関係に関する情報を明示的に収集し、保存します。 What is RAG? Retrieval-Augmented Generation(RAG)は、以下のようなパターンです。 ベクターDBから最も関連する埋め込みを取り戻すと、 LLMのプロンプトをそのリハビリされた文脈で増やすことで、 最終的な答えを生み出す。 言い換えれば、RAGはLLMを呼ぶ前に正しい知識を取得するためにベクトルDBに依存します。 Why They Matter to LLM-Powered Apps? ベクター DB + RAGは、あなたが「知識ベース」をプロンプトの外に保持し、必要なものだけを引っ張ることができます。 ベクターDBは図書館のカタログであり、RAGは学生がエッセイを書く前に必要な正確なページを取得するワークフローです。 How Vector DB Helps with LLM API Rate Limit? ベクトルデータベースでは、各テーブル、列、または関係が検索可能な部分になります。ユーザーが質問をするとき(「先週訪問した患者は何人ですか?」など)、システムはその質問を埋め込みに変え、類似性の検索を実行します。 まるで で、 そして、 . top-k most relevant tables patients visits appointments この焦点を当てた文脈は、LLMに転送され、リンプトを小さいままに、正確なSQLを生成するために必要な情報を提供します。 Retrieval-Augmented Generation Flow (Steps 4 & 5) for the Project 私のベクターデータベースに外部キー認識を実装した後、前述の2つの問題が適切に解決されます。 GitHub リンク: click ここ ここ デモ サンプルデータベースをアップロードしているのですが、 テスト環境に入る サキラ sakila サキラ サキラ 答えはそれぞれ3つの部分を含む。 SQL Query Query 結果 説明 ♪ ♪ ♪ In the Second Half of This Article, How Do I Steer My AI Coder(s)? この記事の第二半期では、私はどのようにAIコーダー(s)を制御しますか? 私は目標を設定し、質問をすることによってプロジェクトを駆使し、LLMは重荷の持ち上げを処理しました。それは問題を強調し、解決策を提案し、妥協を説明し、私はどのような道を進むべきかを最終的な決定を下しました。 ドライバーへのアドバイス: あなたはマネージャーではなく、コーダーです。明確な目標と優先順位を設定し、LLMが実装の詳細を処理するようにしてください。 First, Think Like a Leader: テストを実行し、LLMに失敗をデバッグするように依頼し、しばしば中途半端にクリーンなデザインを提案するのが見つかります。 Solid tests are your safety net — but with the LLM acting as your pair programmer, you get instant feedback. 人間のマネージャーのように、マイクロマネージャーはチームの効率を損なう。何が起こる必要があるかを指定するが、LLMを信頼してどのように決定するか。過剰に制限するプロンプトは、奇妙なデザインや隠されたバグにつながる可能性があります。さらに、実装の詳細にあなたを引っ張り、あなたを枯渇させます。もちろん、あなたがこの状況に入るときは、手でコードを書く方が良いと感じます。 Avoid Micromanagement: — LLM がループまたはトラックから離れるとき、迅速な押し出しや明確化はコースに戻るために必要なすべてです。LLM がテストを修正しようと失敗して 20 分を費やすことは珍しくありません。 Intervene When Needed 忘れないでください - すべてのLLMリクエストはお金がかかります。 私のLinkedIn ここ ここ