Spaces:
Runtime error
Runtime error
| from typing import BinaryIO | |
| import yaml | |
| from smolagents import OpenAIServerModel, VisitWebpageTool, PythonInterpreterTool, SpeechToTextTool | |
| from smolagents import CodeAgent, FinalAnswerTool, WikipediaSearchTool, Tool, tool | |
| from langchain_community.tools import DuckDuckGoSearchRun | |
| import os | |
| # Load environment variables from .env file | |
| # with open('.env') as f: | |
| # for line in f: | |
| # if line.strip() and not line.startswith('#'): | |
| # key, value = line.strip().split('=', 1) | |
| # os.environ[key] = value | |
| def get_file_from_documents(file_name: str) -> BinaryIO: | |
| """ | |
| opens and returns a file as a BinaryIO object from the 'documents' directory provided the file name. | |
| Args: | |
| file_name (str): The name of the file to read. | |
| Returns: | |
| BinaryIO: A file-like object containing the content of the file. | |
| Raises: | |
| FileNotFoundError: If the file does not exist in the 'documents' directory. | |
| """ | |
| documents_dir = os.path.join(os.getcwd(), "documents") | |
| file_path = os.path.join(documents_dir, file_name) | |
| if not os.path.exists(file_path): | |
| raise FileNotFoundError(f"The file '{file_name}' does not exist in the 'documents' directory.") | |
| file = open(file_path, "rb") | |
| return file | |
| model = OpenAIServerModel( | |
| model_id="CLAUDE_3_SONNET_35", # Replace with the desired model ID | |
| api_base=os.getenv("BASE_URL"), # Base URL for the API | |
| api_key=os.getenv("OKTA_ACCESS_TOKEN"), # API key for authentication | |
| custom_role_conversions=None, | |
| temperature=0.5, | |
| client_kwargs={ | |
| "default_headers": {"Subscription-Key": os.getenv("SUBSCRIPTION_KEY")}, # Additional headers, | |
| }, | |
| web_search_options={ | |
| "enabled": True, | |
| "dynamic_threshold": 0.5 | |
| } | |
| ) | |
| #Load system prompt from prompt.yaml file | |
| with open("prompts.yaml", 'r') as stream: | |
| prompt_templates = yaml.safe_load(stream) | |
| final_answer = FinalAnswerTool() | |
| ddg_tool = Tool.from_langchain(DuckDuckGoSearchRun()) | |
| agent = CodeAgent( | |
| tools=[final_answer, VisitWebpageTool(), WikipediaSearchTool(), ddg_tool, get_file_from_documents, PythonInterpreterTool(), SpeechToTextTool()], | |
| add_base_tools=True, | |
| max_steps=6, | |
| verbosity_level=1, | |
| grammar=None, | |
| planning_interval=None, | |
| name=None, | |
| description=None, | |
| prompt_templates=prompt_templates, | |
| additional_authorized_imports=['pandas', 'numpy', 'openpyxl', 'xlrd', 'os', ], | |
| model=model) | |
| #agent.run("""What is the final numeric output from the attached Python code? (File Name: f918266a-b3e0-4914-865d-4faa564f1aef.py) """) | |
| # | |
| # res = agent.run("Can you find any information about the latest news on AI?") | |
| # print(res) |