ofermend commited on
Commit
125794f
·
1 Parent(s): d7513a0

version upgrade

Browse files
Files changed (3) hide show
  1. agent.py +8 -8
  2. requirements.txt +1 -1
  3. st_app.py +2 -2
agent.py CHANGED
@@ -10,8 +10,9 @@ load_dotenv(override=True)
10
 
11
  from pydantic import Field, BaseModel
12
  from vectara_agentic.agent import Agent
 
13
  from vectara_agentic.tools import ToolsFactory, VectaraToolFactory
14
- from vectara_agentic.tools_catalog import summarize_text
15
 
16
  initial_prompt = "How can I help you today?"
17
 
@@ -23,14 +24,13 @@ get_headers = {
23
  "Connection": "keep-alive",
24
  }
25
 
26
- def create_assistant_tools(cfg):
27
 
28
  class QueryHackerNews(BaseModel):
29
  query: str = Field(..., description="The user query.")
30
 
31
  vec_factory = VectaraToolFactory(vectara_api_key=cfg.api_key,
32
- vectara_customer_id=cfg.customer_id,
33
- vectara_corpus_id=cfg.corpus_id)
34
  summarizer = 'vectara-experimental-summary-ext-2023-12-11-med-omni'
35
  ask_hackernews = vec_factory.create_rag_tool(
36
  tool_name = "ask_hackernews",
@@ -121,6 +121,7 @@ def create_assistant_tools(cfg):
121
  stories = get_top_stories(n_stories)
122
  texts = [get_story_text(story_id) for story_id in stories[:n_stories]]
123
  all_stories = '---------\n\n'.join(texts)
 
124
  return summarize_text(all_stories)
125
 
126
  tools_factory = ToolsFactory()
@@ -154,9 +155,9 @@ def initialize_agent(_cfg, agent_progress_callback = None):
154
  - You can use the tavily_search tool to gain additional information if needed for follow up questions about Hacker News topic.
155
  - When including information or links provided by the tavily_search tool, make sure to notify the user in your response that this is not based on Hacker News stories.
156
  """
157
-
158
  agent = Agent(
159
- tools=create_assistant_tools(_cfg),
160
  topic="hacker news",
161
  custom_instructions=bot_instructions,
162
  agent_progress_callback=agent_progress_callback
@@ -166,8 +167,7 @@ def initialize_agent(_cfg, agent_progress_callback = None):
166
 
167
  def get_agent_config() -> OmegaConf:
168
  cfg = OmegaConf.create({
169
- 'customer_id': str(os.environ['VECTARA_CUSTOMER_ID']),
170
- 'corpus_id': str(os.environ['VECTARA_CORPUS_ID']),
171
  'api_key': str(os.environ['VECTARA_API_KEY']),
172
  'examples': os.environ.get('QUERY_EXAMPLES', None),
173
  'demo_name': "hacker-news-chat",
 
10
 
11
  from pydantic import Field, BaseModel
12
  from vectara_agentic.agent import Agent
13
+ from vectara_agentic.agent_config import AgentConfig
14
  from vectara_agentic.tools import ToolsFactory, VectaraToolFactory
15
+ from vectara_agentic.tools_catalog import ToolsCatalog
16
 
17
  initial_prompt = "How can I help you today?"
18
 
 
24
  "Connection": "keep-alive",
25
  }
26
 
27
+ def create_assistant_tools(cfg, agent_config):
28
 
29
  class QueryHackerNews(BaseModel):
30
  query: str = Field(..., description="The user query.")
31
 
32
  vec_factory = VectaraToolFactory(vectara_api_key=cfg.api_key,
33
+ vectara_corpus_key=cfg.corpus_key)
 
34
  summarizer = 'vectara-experimental-summary-ext-2023-12-11-med-omni'
35
  ask_hackernews = vec_factory.create_rag_tool(
36
  tool_name = "ask_hackernews",
 
121
  stories = get_top_stories(n_stories)
122
  texts = [get_story_text(story_id) for story_id in stories[:n_stories]]
123
  all_stories = '---------\n\n'.join(texts)
124
+ summarize_text = ToolsCatalog(agent_config).summarize_text
125
  return summarize_text(all_stories)
126
 
127
  tools_factory = ToolsFactory()
 
155
  - You can use the tavily_search tool to gain additional information if needed for follow up questions about Hacker News topic.
156
  - When including information or links provided by the tavily_search tool, make sure to notify the user in your response that this is not based on Hacker News stories.
157
  """
158
+ agent_config = AgentConfig()
159
  agent = Agent(
160
+ tools=create_assistant_tools(_cfg, agent_config),
161
  topic="hacker news",
162
  custom_instructions=bot_instructions,
163
  agent_progress_callback=agent_progress_callback
 
167
 
168
  def get_agent_config() -> OmegaConf:
169
  cfg = OmegaConf.create({
170
+ 'corpus_key': str(os.environ['VECTARA_CORPUS_KEY']),
 
171
  'api_key': str(os.environ['VECTARA_API_KEY']),
172
  'examples': os.environ.get('QUERY_EXAMPLES', None),
173
  'demo_name': "hacker-news-chat",
requirements.txt CHANGED
@@ -6,5 +6,5 @@ streamlit_feedback==0.1.3
6
  uuid==1.30
7
  langdetect==1.0.9
8
  langcodes==3.4.0
9
- vectara-agentic==0.1.22
10
 
 
6
  uuid==1.30
7
  langdetect==1.0.9
8
  langcodes==3.4.0
9
+ vectara-agentic==0.2.0
10
 
st_app.py CHANGED
@@ -132,8 +132,8 @@ async def launch_bot():
132
  if st.session_state.prompt:
133
  with st.chat_message("assistant", avatar='🤖'):
134
  st.session_state.status = st.status('Processing...', expanded=False)
135
- res = st.session_state.agent.chat(st.session_state.prompt)
136
- res = escape_dollars_outside_latex(res)
137
  message = {"role": "assistant", "content": res, "avatar": '🤖'}
138
  st.session_state.messages.append(message)
139
  st.markdown(res)
 
132
  if st.session_state.prompt:
133
  with st.chat_message("assistant", avatar='🤖'):
134
  st.session_state.status = st.status('Processing...', expanded=False)
135
+ response = st.session_state.agent.chat(st.session_state.prompt)
136
+ res = escape_dollars_outside_latex(response.response)
137
  message = {"role": "assistant", "content": res, "avatar": '🤖'}
138
  st.session_state.messages.append(message)
139
  st.markdown(res)