|
import os |
|
from dotenv import load_dotenv |
|
import gradio as gr |
|
from langchain_google_genai import ChatGoogleGenerativeAI |
|
from langchain.agents import initialize_agent |
|
from langchain_community.agent_toolkits.load_tools import load_tools |
|
|
|
|
|
def main(query, google_api_key, google_cse_id): |
|
|
|
os.environ["GOOGLE_API_KEY"] = google_api_key |
|
os.environ["GOOGLE_CSE_ID"] = google_cse_id |
|
|
|
llm = ChatGoogleGenerativeAI( |
|
model="gemini-pro", |
|
temperature=0.0 |
|
) |
|
tools = load_tools(["google-search"], llm=llm) |
|
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True) |
|
|
|
return agent.run(query) |
|
|
|
|
|
if __name__ == "__main__": |
|
try: |
|
app = gr.Interface( |
|
fn=main, |
|
inputs=[ |
|
gr.Textbox(label="Search Query (検索クエリ)"), |
|
gr.Textbox(label="Google API Key (https://console.cloud.google.com/apis/credentials)"), |
|
gr.Textbox(label="Google Programmable Search Engine ID (https://programmablesearchengine.google.com)") |
|
], |
|
outputs=[gr.Textbox(label="Search Result (検索結果)")], |
|
title="Google Search enhanced by LLM" |
|
) |
|
app.launch(share=True) |
|
except Exception as e: |
|
raise e |