| import os | |
| from dotenv import load_dotenv | |
| from gradio.external import load_blocks_from_huggingface | |
| from langchain.agents import create_agent | |
| from langchain_community.tools.ddg_search.tool import DuckDuckGoSearchResults | |
| from langgraph.checkpoint.memory import InMemorySaver | |
| from langchain_community.tools import DuckDuckGoSearchRun | |
| from google.ai.generativelanguage_v1beta.types import Tool as GenAITool | |
| from langchain.messages import HumanMessage, AIMessage, SystemMessage | |
| from numpy import load | |
| load_dotenv() | |
| os.environ["GOOGLE_API_KEY"] = os.getenv("GEMINI_API_KEY") | |
| system_prompt = """finish your answer with the following template: FINAL ANSWER: [YOUR FINAL ANSWER]. | |
| YOUR FINAL ANSWER should be a number OR as few words as possible OR a comma separated list of numbers and/or strings. | |
| If you are asked for a number, don't use comma to write your number neither use units such as $ or percent sign unless specified otherwise. | |
| If you are asked for a string, don't use articles, neither abbreviations (e.g. for cities), and write the digits in plain text unless specified otherwise. | |
| If you are asked for a comma separated list, apply the above rules depending of whether the element to be put in the list is a number or a string.""" | |
| agent = create_agent( | |
| model="google_genai:gemini-2.5-flash", | |
| tools=[DuckDuckGoSearchRun()], | |
| system_prompt=system_prompt, | |
| checkpointer=InMemorySaver(), | |
| ) | |
| response = agent.invoke( | |
| {"messages": [{"role": "user", "content": "what is the weather in sf"}]}, | |
| {"configurable": {"thread_id": "1"}}, | |
| ) | |
| print(response) | |