社内テキストドキュメントをベクトルデータベース(Chroma DB)に保存し、問い合わせに応じて文脈を検索・付与して回答生成するRAGシステムです。
Python
import chromadb
import google.generativeai as genai
# Chroma DBの初期化(第5章)
chroma_client = chromadb.Client()
collection = chroma_client.get_or_create_collection(name="company_knowledge")
# ドキュメントの登録
collection.add(
documents=[
"リモートワークの交通費精算は月額最高20,000円まで支給されます。",
"有給休暇の申請は社内申請システム(Workflow)から希望日の3日前までに行ってください。"
],
ids=["doc_1", "doc_2"]
)
def answer_query(user_query: str) -> str:
# 類似テキストの抽出
results = collection.query(query_texts=[user_query], n_results=1)
context = results['documents'][0][0] if results['documents'] else ""
# プロンプトの組み立て
prompt = f"以下の参考情報をもとに質問に回答してください。\n\n【参考情報】\n{context}\n\n【質問】\n{user_query}"
# LLMの呼び出し(例: Gemini API)
# genai.configure(api_key=os.environ["GEMINI_API_KEY"])
# model = genai.GenerativeModel('gemini-1.5-flash')
# response = model.generate_content(prompt)
# return response.text
return f"(生成AI回答プレビュー)\nコンテキスト: '{context}' を使用して回答を生成しました。"
print(answer_query("有給はいつまでに申請すればいいですか?"))

コメント