| | from smolagents import CodeAgent, HfApiModel, load_tool |
| | import yaml |
| | from smolagents import tool |
| | from duckduckgo_search import DDGS |
| |
|
| | from tools.final_answer import FinalAnswerTool |
| | from Gradio_UI import GradioUI |
| |
|
| | @tool |
| | def DuckDuckGoSearchTool(query: str) -> str: |
| | """ |
| | Инструмент для поиска информации в интернете с помощью DuckDuckGo. |
| | Args: |
| | query: Поисковый запрос. |
| | """ |
| | with DDGS() as ddgs: |
| | results = [r for r in ddgs.text(query, max_results=5)] |
| | if not results: |
| | return "По вашему запросу ничего не найдено." |
| | formatted_results = "\n\n".join( |
| | f"**Заголовок:** {r['title']}\n**Ссылка:** {r['href']}\n**Краткое содержание:** {r['body']}" |
| | for r in results |
| | ) |
| | return formatted_results |
| |
|
| | final_answer = FinalAnswerTool() |
| |
|
| | |
| | primary_model_id = 'Qwen/Qwen2.5-Coder-32B-Instruct' |
| | fallback_model_id = 'https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud' |
| |
|
| | try: |
| | model = HfApiModel( |
| | max_tokens=2096, |
| | temperature=0.5, |
| | model_id=primary_model_id, |
| | custom_role_conversions=None, |
| | ) |
| | print(f"Using primary model: {primary_model_id}") |
| | except Exception as e: |
| | print(f"Error initializing primary model: {e}") |
| | print(f"Falling back to secondary model: {fallback_model_id}") |
| | |
| | model = HfApiModel( |
| | max_tokens=2096, |
| | temperature=0.5, |
| | model_id=fallback_model_id, |
| | custom_role_conversions=None, |
| | ) |
| |
|
| | image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True) |
| |
|
| | with open("prompts.yaml", 'r') as stream: |
| | try: |
| | prompt_templates = yaml.safe_load(stream) |
| | except yaml.YAMLError as exc: |
| | print(exc) |
| |
|
| | if isinstance(prompt_templates, dict) and 'system_prompt' in prompt_templates: |
| | |
| | system_prompt = prompt_templates['system_prompt'] |
| |
|
| | prompt_templates = {'system_prompt': system_prompt} |
| |
|
| | agent = CodeAgent( |
| | model=model, |
| | tools=[DuckDuckGoSearchTool, final_answer, image_generation_tool], |
| | max_steps=6, |
| | verbosity_level=1, |
| | grammar=None, |
| | planning_interval=None, |
| | name=None, |
| | description=None, |
| | prompt_templates=prompt_templates |
| | ) |
| |
|
| | GradioUI(agent).launch() |