yoshizen commited on
Commit
8d74d82
·
verified ·
1 Parent(s): e19bac8

Delete app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -219
app.py DELETED
@@ -1,219 +0,0 @@
1
- """
2
- Минимальная версия приложения для отправки ответов на сервер GAIA
3
- Без зависимостей от внешних модулей и файлов
4
- """
5
-
6
- import os
7
- import json
8
- import requests
9
- import time
10
- from typing import Dict, Any, List
11
-
12
- # Импортируем агента
13
- from enhanced_gaia_agent_v3 import EnhancedGAIAAgent
14
-
15
- # Константы
16
- API_URL = "https://gaia-challenge.huggingface.co/api/submit"
17
- CACHE_FILE = "submission_cache.json"
18
-
19
- class GAIASubmitter:
20
- """
21
- Класс для отправки ответов на сервер GAIA
22
- """
23
-
24
- def __init__(self, username: str, agent_code: str, use_cache: bool = True):
25
- """
26
- Инициализация отправителя
27
-
28
- Args:
29
- username: Имя пользователя для отправки
30
- agent_code: Код агента для отправки
31
- use_cache: Использовать ли кэширование ответов
32
- """
33
- self.username = username
34
- self.agent_code = agent_code
35
- self.use_cache = use_cache
36
- self.cache = self._load_cache() if use_cache else {}
37
-
38
- # Инициализируем агента
39
- print(f"Initializing agent for submission...")
40
- self.agent = EnhancedGAIAAgent(use_cache=True)
41
-
42
- def _load_cache(self) -> Dict[str, Any]:
43
- """
44
- Загружает кэш ответов из файла
45
-
46
- Returns:
47
- Dict[str, Any]: Словарь с кэшированными ответами
48
- """
49
- if os.path.exists(CACHE_FILE):
50
- try:
51
- with open(CACHE_FILE, 'r', encoding='utf-8') as f:
52
- print(f"Loading submission cache from {CACHE_FILE}")
53
- return json.load(f)
54
- except Exception as e:
55
- print(f"Error loading submission cache: {e}")
56
- return {}
57
- else:
58
- print(f"Submission cache file {CACHE_FILE} not found, creating new cache")
59
- return {}
60
-
61
- def _save_cache(self) -> None:
62
- """
63
- Сохраняет кэш ответов в файл
64
- """
65
- try:
66
- with open(CACHE_FILE, 'w', encoding='utf-8') as f:
67
- json.dump(self.cache, f, ensure_ascii=False, indent=2)
68
- print(f"Submission cache saved to {CACHE_FILE}")
69
- except Exception as e:
70
- print(f"Error saving submission cache: {e}")
71
-
72
- def submit_answers(self, questions: List[Dict[str, str]]) -> Dict[str, Any]:
73
- """
74
- Отправляет ответы на сервер GAIA
75
-
76
- Args:
77
- questions: Список вопросов для ответа
78
-
79
- Returns:
80
- Dict[str, Any]: Ответ сервера
81
- """
82
- # Подготавливаем ответы
83
- answers = {}
84
-
85
- print(f"Processing {len(questions)} questions...")
86
- for i, question in enumerate(questions):
87
- task_id = question["task_id"]
88
- question_text = question["question"]
89
-
90
- print(f"Question {i+1}/{len(questions)}: {task_id} - {question_text[:50]}...")
91
-
92
- # Получаем ответ от агента
93
- try:
94
- json_response = self.agent(question_text, task_id)
95
- response_obj = json.loads(json_response)
96
- answer = response_obj.get("final_answer", "")
97
-
98
- print(f"Answer: {answer}")
99
- answers[task_id] = answer
100
-
101
- except Exception as e:
102
- print(f"Error processing question {task_id}: {e}")
103
- answers[task_id] = f"ERROR: {e}"
104
-
105
- # Подготавливаем данные для отправки
106
- submission_data = {
107
- "username": self.username,
108
- "agent_code": self.agent_code,
109
- "answers": answers
110
- }
111
-
112
- # Сохраняем данные для отладки
113
- with open("submission_data.json", 'w', encoding='utf-8') as f:
114
- json.dump(submission_data, f, ensure_ascii=False, indent=2)
115
- print("Submission data saved to submission_data.json")
116
-
117
- # Проверяем наличие ответа в кэше
118
- cache_key = json.dumps(submission_data)
119
- if self.use_cache and cache_key in self.cache:
120
- print("Using cached submission response")
121
- return self.cache[cache_key]
122
-
123
- # Отправляем запрос на сервер с повторными попытками
124
- max_retries = 3
125
- for attempt in range(max_retries):
126
- try:
127
- print(f"Submitting answers to {API_URL} (attempt {attempt+1}/{max_retries})...")
128
- response = requests.post(API_URL, json=submission_data, timeout=10)
129
-
130
- # Сохраняем ответ для отладки
131
- with open("response_content.txt", 'w', encoding='utf-8') as f:
132
- f.write(response.text)
133
- print("Response content saved to response_content.txt")
134
-
135
- # Проверяем статус ответа
136
- if response.status_code == 200:
137
- print("Submission successful!")
138
- result = response.json()
139
-
140
- # Сохраняем результат для отладки
141
- with open("results_response.txt", 'w', encoding='utf-8') as f:
142
- json.dump(result, f, ensure_ascii=False, indent=2)
143
- print("Results saved to results_response.txt")
144
-
145
- # Сохраняем в кэш
146
- if self.use_cache:
147
- self.cache[cache_key] = result
148
- self._save_cache()
149
-
150
- return result
151
- else:
152
- error_msg = f"HTTP error {response.status_code}: {response.text}"
153
- print(error_msg)
154
-
155
- except requests.exceptions.RequestException as e:
156
- error_msg = f"Network error: {str(e)}"
157
- print(error_msg)
158
-
159
- # Экспоненциальная задержка перед следующей попыткой
160
- delay = 2 ** attempt
161
- print(f"Retrying in {delay} seconds...")
162
- time.sleep(delay)
163
-
164
- return {"error": f"All {max_retries} attempts failed"}
165
-
166
- def main():
167
- """
168
- Основная функция для отправки ответов
169
- """
170
- # Получаем имя пользователя из аргументов командной строки
171
- import sys
172
- if len(sys.argv) > 1:
173
- username = sys.argv[1]
174
- else:
175
- # Используем значение по умолчанию вместо интерактивного запроса
176
- username = "yoshizen" # Замените на ваше имя пользователя
177
- print(f"Using default username: {username}")
178
-
179
- # Код агента для отправки
180
- agent_code = "enhanced_gaia_agent_v3"
181
-
182
- # Создаем отправителя
183
- submitter = GAIASubmitter(username, agent_code, use_cache=True)
184
-
185
- # Создаем минимальный набор тестовых вопросов
186
- # Это нужно только для локального тестирования
187
- # В реальной системе GAIA вопросы будут предоставлены системой
188
- questions = [
189
- {
190
- "task_id": "test_1",
191
- "question": "What is the capital of France?",
192
- "type": "location"
193
- },
194
- {
195
- "task_id": "test_2",
196
- "question": "Who wrote 'War and Peace'?",
197
- "type": "name"
198
- }
199
- ]
200
-
201
- # Отправляем ответы
202
- result = submitter.submit_answers(questions)
203
-
204
- # Выводим результат
205
- print("\n=== Submission Result ===")
206
- if "error" in result:
207
- print(f"Error: {result['error']}")
208
- else:
209
- print(f"Score: {result.get('score', 'N/A')}")
210
- print(f"Message: {result.get('message', 'No message')}")
211
-
212
- # Выводим детальные результаты, если есть
213
- if "details" in result:
214
- print("\nDetails:")
215
- for task_id, detail in result["details"].items():
216
- print(f"- {task_id}: {detail}")
217
-
218
- if __name__ == "__main__":
219
- main()