qver3nc1a commited on
Commit
f6ba532
·
verified ·
1 Parent(s): 15e0dc1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -25
app.py CHANGED
@@ -12,40 +12,43 @@ from langchain_core.messages import AnyMessage, HumanMessage, AIMessage
12
  from typing import TypedDict, Annotated
13
  from langgraph.graph.message import add_messages
14
 
 
 
 
 
15
  # (Keep Constants as is)
16
  # --- Constants ---
17
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
18
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  # --- Basic Agent Definition ---
20
  # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
21
  class BasicAgent:
22
  def __init__(self):
23
- print("BasicAgent initialized.")
24
- self.search_tool = DuckDuckGoSearchRun()
25
- self.tools = [self.search_tool]
26
-
27
- class AgentState(TypedDict):
28
- messages: Annotated[list[AnyMessage], add_messages]
29
-
30
- def assistant(state: AgentState):
31
- user_message = state['messages'][-1]
32
- if isinstance(user_message, HumanMessage):
33
- result = self.search_tool.invoke(user_message.content)
34
- return {'messages': [AIMessage(content=result)]}
35
- return {'messages': [AIMessage(content='I can only answer human questions.')]}
36
-
37
- builder = StateGraph(AgentState)
38
- builder.add_node("assistant", assistant)
39
- builder.add_edge(START, "assistant")
40
- self.alfred = builder.compile()
41
-
42
  def __call__(self, question: str) -> str:
43
- print(f"Agent received question (first 50 chars): {question[:50]}...")
44
- fixed_answer = "This is a default answer."
45
- messages = [HumanMessage(content=question)]
46
- response = self.alfred.invoke({'messages': messages})
47
- answer = response['messages'][-1].content
48
- print(f"Agent returning fixed answer: {answer}")
 
 
 
 
49
  return answer
50
 
51
  def run_and_submit_all( profile: gr.OAuthProfile | None):
 
12
  from typing import TypedDict, Annotated
13
  from langgraph.graph.message import add_messages
14
 
15
+ from smolagents import ToolCallingAgent, LiteLLMModel, tool, DuckDuckGoSearchTool
16
+ from langchain_community.utilities import WikipediaAPIWrapper
17
+
18
+
19
  # (Keep Constants as is)
20
  # --- Constants ---
21
  DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
22
 
23
+
24
+
25
+ wikipedia = WikipediaAPIWrapper()
26
+ @tool
27
+ def wikipedia_search(query: str) -> str:
28
+ '''
29
+ Search Wikipedia and return a summary for a given query.
30
+ Args:
31
+ query: The search term or question to look up in Wikipedia.
32
+ '''
33
+ return wikipedia.run(query)
34
+
35
  # --- Basic Agent Definition ---
36
  # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
37
  class BasicAgent:
38
  def __init__(self):
39
+ print('BasicAgent initialized.')
40
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  def __call__(self, question: str) -> str:
42
+ print(f"Agent received question: {question[:50]}...")
43
+
44
+ agent = ToolCallingAgent(
45
+ tools=[DuckDuckGoSearchTool(), wikipedia_search],
46
+ model = LiteLLMModel(model_id="ollama/qwen2:7b", api_base='http://192.168.1.77:11434')
47
+ max_steps=15,
48
+ verbosity_level=2,
49
+ )
50
+
51
+ return agent.run(question)
52
  return answer
53
 
54
  def run_and_submit_all( profile: gr.OAuthProfile | None):