sasio06 / app.py
Sasa06's picture
Upload 7 files
1fa212d verified
"""
Основной файл приложения для запуска агента и интерфейса 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()