Spaces:
Runtime error
Runtime error
| from llm.gemini_client import GeminiClient | |
| from llm.utils.wiki_client import WikiClient | |
| SYSTEM_MESSAGE = """you have access to a wikipedia summarizer that can return a summary for a topic. \ | |
| Your job is to act as a question answering tool. Whenever you are asked about a question related to knowledge, \ | |
| instead of using your internal knowledge (which can be faulty or out of date), \ | |
| format a Wikipedia search query string that can help answer the question. \ | |
| Remember Wikipedia Entries are usually about a simple entity or event, so keep the \ | |
| query short, and about the entity being asked about. Also, don't use your knowledge \ | |
| to ask about the answer. Instead form queries about the entity in the question. This \ | |
| will help you get the right wikipedia entries for questions when you dont know the answer | |
| ### Example 1: | |
| Question: Who won the ICC Cricket World Cup? | |
| Correct Response: Cricket World Cup | |
| Incorrect response: Australia | |
| ### Example 2: | |
| Question: Who directed the classic 30s western Stagecoach? | |
| Response: Stagecoach | |
| Incorrect response: John Ford | |
| Below is the question. Return the wikipedia search query you would use \n | |
| ### Question: | |
| """ | |
| class WikiSearchAgent: | |
| def __init__(self): | |
| self._llm_client = GeminiClient(system_message=SYSTEM_MESSAGE) | |
| self._wiki_client = WikiClient() | |
| def get_wikipedia_entry(self, prompt: str) -> str: | |
| wiki_search_query = self._llm_client.generate_text(prompt) | |
| wikipedia_page = self._wiki_client.get_pages(wiki_search_query) | |
| try: | |
| return wikipedia_page.summary | |
| except: | |
| return "" | |