主要LLM API(OpenAI / Gemini)の利用法
各AIベンダーのPython SDKを利用し、プログラムから推論結果を取得します。
Python
# Google Gemini API の例
import google.generativeai as genai
genai.configure(api_key="YOUR_GEMINI_API_KEY")
model = genai.GenerativeModel('gemini-1.5-pro')
response = model.generate_content("Pythonでデータ分析を始めるメリットを3点教えてください。")
print(response.text)
Python
# OpenAI API (v1.0+) の例
from openai import OpenAI
client = OpenAI(api_key="YOUR_OPENAI_API_KEY")
completion = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "あなたはIT専門技術ライターです。"},
{"role": "user", "content": "RAGのメリットを簡潔に解説してください。"}
]
)
print(completion.choices[0].message.content)
RAG(検索拡張生成)の実装手順
外部ドキュメント(社内マニュアルや独自PDF)を検索し、その背景知識を提示した上でLLMに回答させる技術です。
- テキスト分割(Chunking): 長文テキストを数百文字ずつの小さな塊に切断。
- ベクトル化(Embedding): テキスト塊を数値ベクトル(意味表現)に変換。
- ベクトルデータベース格納: FAISSやChroma等のDBへ保存。
- 類似度検索 & プロンプト結合: ユーザーの質問と最も近い文脈を抽出してコンテキストに含める。
Python
# Chroma DB と Embedding を活用した簡易RAG構成
import chromadb
# ベクトルDBの初期化
chroma_client = chromadb.Client()
collection = chroma_client.create_collection(name="company_docs")
# ドキュメントの追加
collection.add(
documents=[
"弊社の有給休暇申請は社内ポータルシステムから3日前までに行います。",
"リモートワークの経費精算ルールは毎月末日締めです。"
],
ids=["doc1", "doc2"]
)
# 類似度検索
query = "有給の申請手順はどうなっていますか?"
results = collection.query(
query_texts=[query],
n_results=1
)
retrieved_doc = results['documents'][0][0]
# 取得した情報を踏まえてプロンプトを動的構成
system_prompt = f"以下の社内資料を参考にしてユーザーの質問に回答してください:\n{retrieved_doc}"
print("構成されたPrompt:\n", system_prompt)

コメント