dawid-lorek commited on
Commit
6c7c70b
·
verified ·
1 Parent(s): 0985bbd

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +10 -6
agent.py CHANGED
@@ -4,12 +4,11 @@ from llama_index.llms.openai import OpenAI
4
  from llama_index.core.agent.workflow import AgentWorkflow
5
  from llama_index.core.tools import FunctionTool
6
 
7
- # LangChain-based tools
8
  from langchain_community.tools import DuckDuckGoSearchRun, WikipediaQueryRun
9
  from langchain_experimental.tools.python.tool import PythonREPLTool
10
  from langchain_community.document_loaders import YoutubeLoader
11
 
12
- # Tool wrappers
13
  def search_duckduckgo(query: str) -> str:
14
  return DuckDuckGoSearchRun().run(query)
15
 
@@ -22,8 +21,9 @@ def run_python(code: str) -> str:
22
  def get_youtube_transcript(url: str) -> str:
23
  loader = YoutubeLoader.from_youtube_url(url, add_video_info=False)
24
  docs = loader.load()
25
- return " ".join(d.page_content for d in docs)
26
 
 
27
  TOOLS = [
28
  FunctionTool.from_defaults(search_duckduckgo),
29
  FunctionTool.from_defaults(search_wikipedia),
@@ -31,13 +31,17 @@ TOOLS = [
31
  FunctionTool.from_defaults(get_youtube_transcript),
32
  ]
33
 
 
34
  llm = OpenAI(model="gpt-4")
 
 
35
  agent = AgentWorkflow.from_tools_or_functions(
36
  TOOLS,
37
  llm=llm,
38
- system_prompt="You are a helpful AI agent using external tools."
39
  )
40
 
41
- import asyncio
42
  async def answer_question(question: str) -> str:
43
- return await agent.run(question)
 
 
4
  from llama_index.core.agent.workflow import AgentWorkflow
5
  from llama_index.core.tools import FunctionTool
6
 
 
7
  from langchain_community.tools import DuckDuckGoSearchRun, WikipediaQueryRun
8
  from langchain_experimental.tools.python.tool import PythonREPLTool
9
  from langchain_community.document_loaders import YoutubeLoader
10
 
11
+ # --- Tool wrappers --- #
12
  def search_duckduckgo(query: str) -> str:
13
  return DuckDuckGoSearchRun().run(query)
14
 
 
21
  def get_youtube_transcript(url: str) -> str:
22
  loader = YoutubeLoader.from_youtube_url(url, add_video_info=False)
23
  docs = loader.load()
24
+ return " ".join(doc.page_content for doc in docs)
25
 
26
+ # --- Register tools --- #
27
  TOOLS = [
28
  FunctionTool.from_defaults(search_duckduckgo),
29
  FunctionTool.from_defaults(search_wikipedia),
 
31
  FunctionTool.from_defaults(get_youtube_transcript),
32
  ]
33
 
34
+ # --- Load LLM --- #
35
  llm = OpenAI(model="gpt-4")
36
+
37
+ # --- Build agent --- #
38
  agent = AgentWorkflow.from_tools_or_functions(
39
  TOOLS,
40
  llm=llm,
41
+ system_prompt="You are a helpful AI agent using reasoning and external tools to solve tasks."
42
  )
43
 
44
+ # --- Async run wrapper --- #
45
  async def answer_question(question: str) -> str:
46
+ result = await agent.run(question)
47
+ return str(result)