5-3. 生成AI(LLM)API連携アプリケーション開発

主要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に回答させる技術です。

  1. テキスト分割(Chunking): 長文テキストを数百文字ずつの小さな塊に切断。
  2. ベクトル化(Embedding): テキスト塊を数値ベクトル(意味表現)に変換。
  3. ベクトルデータベース格納: FAISSやChroma等のDBへ保存。
  4. 類似度検索 & プロンプト結合: ユーザーの質問と最も近い文脈を抽出してコンテキストに含める。

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)

コメント

タイトルとURLをコピーしました