| from google import genai
|
| import gradio as gr
|
| import os
|
|
|
| API_KEY = os.getenv("GEMINI_API_KEY")
|
|
|
| client = genai.Client(
|
| api_key=API_KEY
|
| )
|
|
|
|
|
| with open("kosen.txt", encoding="utf-8") as f:
|
| knowledge = f.read()
|
|
|
|
|
| def rag_chat(message, history):
|
|
|
| conversation = ""
|
| if history is None:
|
| history = []
|
|
|
| for msg in history:
|
| role = msg["role"]
|
| content = msg["content"]
|
| conversation += f"{role}: {content}\n"
|
|
|
| prompt = f"""
|
| あなたは富山高等専門学校の案内AIです。
|
| 以下の資料を参考に回答してください。
|
| ただし、資料にない内容に関しては、「参考資料に情報がないため、geminiによる回答を行います。
|
| ただし、不正確である場合がありますので予めご了承ください。」と伝えた上で、geminiによる回答を行ってください。
|
| =====資料=====
|
| {knowledge}
|
| ============
|
| =====過去の会話=====
|
| {conversation}
|
| ===================
|
| ユーザー:
|
| {message}
|
| """
|
| response = client.models.generate_content(
|
| model="gemini-2.5-flash",
|
| contents=prompt
|
| )
|
| return response.text
|
| app = gr.Interface(
|
| fn=rag_chat,
|
| inputs=gr.Textbox(
|
| label="質問",
|
| lines=3
|
| ),
|
| outputs=gr.Textbox(
|
| label="回答",
|
| lines=10
|
| ),
|
| title="富山高専RAGアプリ"
|
| )
|
|
|
| app.launch() |