Spaces:
Paused
Paused
| import gradio as gr | |
| import os | |
| from langchain.agents import initialize_agent | |
| from langchain.llms import OpenAI | |
| from gradio_tools import BaseTool | |
| from langchain.memory import ConversationBufferMemory | |
| # Set up OpenAI API Key | |
| if not os.getenv("OPENAI_API_KEY"): | |
| os.environ["OPENAI_API_KEY"] = "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" | |
| # Simulated method to fetch a review from Google Maps (You'll replace this with an actual implementation) | |
| def fetch_gmaps_review(location): | |
| # Simulated review | |
| review = "The location was outstanding with beautiful views and amazing food. Service could be better though." | |
| return review | |
| class GMapsReviewSummarizationTool(BaseTool): | |
| def __init__(self) -> None: | |
| super().__init__(name="GMapsReviewSummarizer", | |
| description="A tool that fetches a Google Maps review based on a location and then summarizes it.", | |
| src="your_gradio_app_url_or_id_here") | |
| def create_job(self, query: str) -> str: | |
| review = fetch_gmaps_review(query) | |
| return review | |
| def postprocess(self, output: str) -> str: | |
| llm = OpenAI(temperature=0.5) | |
| response = llm.query(f"Summarize the following Google Maps review: '{output}'") | |
| return response | |
| def main(): | |
| llm = OpenAI(temperature=0.5) | |
| memory = ConversationBufferMemory(memory_key="review_history") | |
| tools = [GMapsReviewSummarizationTool().langchain] | |
| agent = initialize_agent(tools, llm, memory=memory, agent="conversational-review-summarizer", verbose=True) | |
| def gr_interface(location_input): | |
| return agent.run(input=f"Fetch and summarize a review for the location: {location_input}") | |
| interface = gr.Interface(fn=gr_interface, | |
| inputs="textbox", | |
| outputs="textbox", | |
| live=True, | |
| title="GMaps Review Summarizer") | |
| interface.launch() | |
| if __name__ == "__main__": | |
| main() |