from dataclasses import dataclass, field from typing import List, Optional from langchain.agents import Tool from tools.interfaces.interface_audio_provider import AudioTranscriptionProvider from tools.interfaces.interface_code_excutor import CodeExecutorInterface from tools.interfaces.interface_file_reader import FileReaderInterface from tools.interfaces.interface_video_provider import VideoSearchProviderInterface from tools.interfaces.interface_video_transcriptor_provider import TranscriptProviderInterface from tools.interfaces.interface_wikipedia_search import WikipediaSearchInterface @dataclass class AgentParamsDataClass: tools_LangChain: List[Tool] = field(default_factory=list) read_file_content_tool: Optional[FileReaderInterface] = None web_search_tool: Optional[WikipediaSearchInterface] = None analyze_image_tool: Optional[TranscriptProviderInterface] = None audio_transcriptor_tool: Optional[AudioTranscriptionProvider] = None run_python_code_with_file_tool: Optional[CodeExecutorInterface] = None search_provider_tool: Optional[VideoSearchProviderInterface] = None prefix_tool:str = None