MADtoBAD commited on
Commit
36dc97d
·
verified ·
1 Parent(s): 3cf5415

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -14
app.py CHANGED
@@ -1,11 +1,20 @@
1
- from smolagents import CodeAgent, DuckDuckGoSearchTool
2
  import datetime
3
  import requests
4
  import pytz
5
  import yaml
6
- from tools.final_answer import FinalAnswerTool
7
  from Gradio_UI import GradioUI
8
 
 
 
 
 
 
 
 
 
 
 
9
  # Инструменты (tools), используемые агентом:
10
  # - web_search: поиск в интернете через DuckDuckGo
11
  # - get_weather: получение текущей погоды для города
@@ -117,20 +126,36 @@ def suggest_weather_sources(city: str) -> str:
117
 
118
  return f"Надежные источники погоды для {city}:\n" + "\n".join(sources)
119
 
120
- final_answer = FinalAnswerTool()
121
-
122
  # Используем локальную модель вместо HfApiModel
123
- from transformers import AutoModelForCausalLM, AutoTokenizer
124
- from smolagents import TransformersModel
125
-
126
- model = TransformersModel(
127
- model_id='Qwen/Qwen2.5-Coder-1.5B', # Используем меньшую модель для совместимости
128
- max_tokens=2096,
129
- temperature=0.5
130
- )
 
 
 
 
 
 
 
 
 
131
 
132
- with open("prompts.yaml", 'r') as stream:
133
- prompt_templates = yaml.safe_load(stream)
 
 
 
 
 
 
 
 
 
134
 
135
  if "final_answer" not in prompt_templates:
136
  prompt_templates["final_answer"] = {
 
1
+ from smolagents import CodeAgent, DuckDuckGoSearchTool, tool
2
  import datetime
3
  import requests
4
  import pytz
5
  import yaml
 
6
  from Gradio_UI import GradioUI
7
 
8
+ # Создаем свой собственный инструмент для финального ответа
9
+ @tool
10
+ def final_answer(answer: str) -> str:
11
+ """Provide the final answer to the user. Use this when you have the answer to the user's question.
12
+
13
+ Args:
14
+ answer: The final answer to present to the user
15
+ """
16
+ return answer
17
+
18
  # Инструменты (tools), используемые агентом:
19
  # - web_search: поиск в интернете через DuckDuckGo
20
  # - get_weather: получение текущей погоды для города
 
126
 
127
  return f"Надежные источники погоды для {city}:\n" + "\n".join(sources)
128
 
 
 
129
  # Используем локальную модель вместо HfApiModel
130
+ try:
131
+ from transformers import AutoModelForCausalLM, AutoTokenizer
132
+ from smolagents import TransformersModel
133
+
134
+ model = TransformersModel(
135
+ model_id='Qwen/Qwen2.5-Coder-1.5B', # Используем меньшую модель для совместимости
136
+ max_tokens=2096,
137
+ temperature=0.5
138
+ )
139
+ except ImportError:
140
+ # Если transformers не установлен, используем простую модель
141
+ from smolagents import LiteLLMModel
142
+ model = LiteLLMModel(
143
+ model_id='gpt-3.5-turbo',
144
+ max_tokens=2096,
145
+ temperature=0.5
146
+ )
147
 
148
+ # Загружаем промпты, если файл существует, иначе создаем базовый шаблон
149
+ try:
150
+ with open("prompts.yaml", 'r') as stream:
151
+ prompt_templates = yaml.safe_load(stream)
152
+ except FileNotFoundError:
153
+ prompt_templates = {
154
+ "final_answer": {
155
+ "pre_messages": "Based on my research: ",
156
+ "post_messages": ""
157
+ }
158
+ }
159
 
160
  if "final_answer" not in prompt_templates:
161
  prompt_templates["final_answer"] = {