ofermend commited on
Commit
a4fedc5
·
1 Parent(s): d036c69

version bump

Browse files
Files changed (3) hide show
  1. agent.py +9 -9
  2. requirements.txt +1 -1
  3. st_app.py +2 -2
agent.py CHANGED
@@ -8,15 +8,16 @@ load_dotenv(override=True)
8
 
9
  from pydantic import Field, BaseModel
10
  from vectara_agentic.agent import Agent
 
11
  from vectara_agentic.tools import ToolsFactory, VectaraToolFactory
12
- from vectara_agentic.tools_catalog import rephrase_text
13
 
14
  teaching_styles = ['Inquiry-based', 'Socratic', 'traditional']
15
  languages = {'English': 'en', 'Spanish': 'es', 'French': 'fr', 'German': 'de', 'Arabic': 'ar', 'Chinese': 'zh-cn',
16
  'Hebrew': 'he', 'Hindi': 'hi', 'Italian': 'it', 'Japanese': 'ja', 'Korean': 'ko', 'Portuguese': 'pt'}
17
  initial_prompt = "How can I help you today?"
18
 
19
- def create_assistant_tools(cfg):
20
 
21
  def adjust_response_to_student(
22
  text: str = Field(description='the text to adjust. may include citations in markdown format.'),
@@ -41,15 +42,14 @@ def create_assistant_tools(cfg):
41
  .replace("{language}", cfg.language) \
42
  .replace("{student_age}", str(cfg.student_age))
43
 
 
44
  return rephrase_text(text, instructions)
45
 
46
 
47
  class JusticeHarvardArgs(BaseModel):
48
  query: str = Field(..., description="The user query.")
49
 
50
- vec_factory = VectaraToolFactory(vectara_api_key=cfg.api_key,
51
- vectara_customer_id=cfg.customer_id,
52
- vectara_corpus_id=cfg.corpus_id)
53
  summarizer = 'vectara-summary-ext-24-05-med-omni'
54
  query_tool = vec_factory.create_rag_tool(
55
  tool_name = "ask_about_justice_harvard",
@@ -91,9 +91,10 @@ def initialize_agent(_cfg, agent_progress_callback=None):
91
  - Response in a concise and clear manner, and provide the most relevant information to the student.
92
  - Never discuss politics, and always respond politely.
93
  """
94
-
95
  agent = Agent(
96
- tools=create_assistant_tools(_cfg),
 
97
  topic="justice, morality, politics, and philosophy",
98
  custom_instructions=bot_instructions,
99
  agent_progress_callback=agent_progress_callback
@@ -103,8 +104,7 @@ def initialize_agent(_cfg, agent_progress_callback=None):
103
 
104
  def get_agent_config() -> OmegaConf:
105
  cfg = OmegaConf.create({
106
- 'customer_id': str(os.environ['VECTARA_CUSTOMER_ID']),
107
- 'corpus_id': str(os.environ['VECTARA_CORPUS_ID']),
108
  'api_key': str(os.environ['VECTARA_API_KEY']),
109
  'examples': os.environ.get('QUERY_EXAMPLES', None),
110
  'demo_name': "Justice-Harvard",
 
8
 
9
  from pydantic import Field, BaseModel
10
  from vectara_agentic.agent import Agent
11
+ from vectara_agentic.agent_config import AgentConfig
12
  from vectara_agentic.tools import ToolsFactory, VectaraToolFactory
13
+ from vectara_agentic.tools_catalog import ToolsCatalog
14
 
15
  teaching_styles = ['Inquiry-based', 'Socratic', 'traditional']
16
  languages = {'English': 'en', 'Spanish': 'es', 'French': 'fr', 'German': 'de', 'Arabic': 'ar', 'Chinese': 'zh-cn',
17
  'Hebrew': 'he', 'Hindi': 'hi', 'Italian': 'it', 'Japanese': 'ja', 'Korean': 'ko', 'Portuguese': 'pt'}
18
  initial_prompt = "How can I help you today?"
19
 
20
+ def create_assistant_tools(cfg, agent_config):
21
 
22
  def adjust_response_to_student(
23
  text: str = Field(description='the text to adjust. may include citations in markdown format.'),
 
42
  .replace("{language}", cfg.language) \
43
  .replace("{student_age}", str(cfg.student_age))
44
 
45
+ rephrase_text = ToolsCatalog(agent_config).rephrase_text
46
  return rephrase_text(text, instructions)
47
 
48
 
49
  class JusticeHarvardArgs(BaseModel):
50
  query: str = Field(..., description="The user query.")
51
 
52
+ vec_factory = VectaraToolFactory(vectara_api_key=cfg.api_key,vectara_corpus_key=cfg.corpus_key)
 
 
53
  summarizer = 'vectara-summary-ext-24-05-med-omni'
54
  query_tool = vec_factory.create_rag_tool(
55
  tool_name = "ask_about_justice_harvard",
 
91
  - Response in a concise and clear manner, and provide the most relevant information to the student.
92
  - Never discuss politics, and always respond politely.
93
  """
94
+ agent_config = AgentConfig()
95
  agent = Agent(
96
+ agent_config=agent_config,
97
+ tools=create_assistant_tools(_cfg, agent_config=agent_config),
98
  topic="justice, morality, politics, and philosophy",
99
  custom_instructions=bot_instructions,
100
  agent_progress_callback=agent_progress_callback
 
104
 
105
  def get_agent_config() -> OmegaConf:
106
  cfg = OmegaConf.create({
107
+ 'corpus_key': str(os.environ['VECTARA_CORPUS_KEY']),
 
108
  'api_key': str(os.environ['VECTARA_API_KEY']),
109
  'examples': os.environ.get('QUERY_EXAMPLES', None),
110
  'demo_name': "Justice-Harvard",
requirements.txt CHANGED
@@ -6,4 +6,4 @@ 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
 
6
  uuid==1.30
7
  langdetect==1.0.9
8
  langcodes==3.4.0
9
+ vectara-agentic==0.2.0
st_app.py CHANGED
@@ -154,8 +154,8 @@ async def launch_bot():
154
  if st.session_state.prompt:
155
  with st.chat_message("assistant", avatar='🤖'):
156
  st.session_state.status = st.status('Processing...', expanded=False)
157
- res = st.session_state.agent.chat(st.session_state.prompt)
158
- res = escape_dollars_outside_latex(res)
159
  message = {"role": "assistant", "content": res, "avatar": '🤖'}
160
  st.session_state.messages.append(message)
161
  st.markdown(res)
 
154
  if st.session_state.prompt:
155
  with st.chat_message("assistant", avatar='🤖'):
156
  st.session_state.status = st.status('Processing...', expanded=False)
157
+ response = st.session_state.agent.chat(st.session_state.prompt)
158
+ res = escape_dollars_outside_latex(response.response)
159
  message = {"role": "assistant", "content": res, "avatar": '🤖'}
160
  st.session_state.messages.append(message)
161
  st.markdown(res)