Spaces:
Sleeping
Sleeping
| """ | |
| Основной файл приложения для запуска агента и интерфейса GAIA benchmark. | |
| """ | |
| import os | |
| import logging | |
| import gradio as gr | |
| from typing import Dict, List, Any, Optional, Tuple | |
| # Импорт компонентов агента | |
| from agent_implementation import AgentController | |
| from gaia_integration import GAIABenchmark, create_gaia_gradio_interface | |
| # Настройка логирования | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', | |
| handlers=[ | |
| logging.FileHandler("app.log"), | |
| logging.StreamHandler() | |
| ] | |
| ) | |
| logger = logging.getLogger("app") | |
| # Проверка наличия токена | |
| hf_token = os.environ.get("HF_TOKEN") | |
| if not hf_token: | |
| logger.warning("HF_TOKEN not found in environment variables") | |
| print("WARNING: HF_TOKEN not found in environment variables") | |
| def process_question(question: str) -> str: | |
| """ | |
| Обработка вопроса с помощью агента. | |
| Args: | |
| question: Вопрос для обработки | |
| Returns: | |
| Ответ на вопрос | |
| """ | |
| if not question: | |
| return "Please enter a question." | |
| try: | |
| # Создание агента | |
| agent = AgentController( | |
| model_name="gpt-3.5-turbo", | |
| username="user" | |
| ) | |
| # Обработка вопроса | |
| answer = agent.process_question(question) | |
| return answer | |
| except Exception as e: | |
| logger.error(f"Error processing question: {e}") | |
| return f"Error: {str(e)}" | |
| def create_gradio_interface(): | |
| """ | |
| Создание интерфейса Gradio. | |
| Returns: | |
| Интерфейс Gradio | |
| """ | |
| # Создание агента | |
| agent = AgentController( | |
| model_name="gpt-3.5-turbo", | |
| username="user" | |
| ) | |
| # Создание интерфейса | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Hugging Face Agent with Tools") | |
| with gr.Tab("Agent"): | |
| with gr.Row(): | |
| with gr.Column(): | |
| question_input = gr.Textbox(label="Question", placeholder="Enter your question here...") | |
| submit_button = gr.Button("Submit") | |
| with gr.Column(): | |
| answer_output = gr.Textbox(label="Answer") | |
| submit_button.click(fn=process_question, inputs=question_input, outputs=answer_output) | |
| with gr.Tab("GAIA Benchmark"): | |
| # Создание интерфейса для GAIA benchmark | |
| gaia_interface = create_gaia_gradio_interface(agent, hf_token) | |
| # Интеграция интерфейса GAIA benchmark | |
| # Примечание: в данной реализации интерфейс создается внутри функции create_gaia_gradio_interface | |
| # и возвращается как часть основного интерфейса | |
| return demo | |
| def main(): | |
| """Основная функция для запуска приложения.""" | |
| demo = create_gradio_interface() | |
| demo.launch() | |
| if __name__ == "__main__": | |
| main() | |