yoshizen commited on
Commit
0721db2
·
verified ·
1 Parent(s): a06a3bd

Delete validate_format.py

Browse files
Files changed (1) hide show
  1. validate_format.py +0 -115
validate_format.py DELETED
@@ -1,115 +0,0 @@
1
- """
2
- Тестовый скрипт для локальной проверки формата ответа агента
3
- """
4
-
5
- import json
6
-
7
- def test_agent_output_format(agent_response):
8
- """
9
- Проверяет формат ответа агента на соответствие требованиям Hugging Face GAIA
10
-
11
- Args:
12
- agent_response: Ответ агента для проверки
13
-
14
- Returns:
15
- dict: Результаты проверки
16
- """
17
- results = {
18
- "is_valid": False,
19
- "format_type": None,
20
- "extracted_answer": None,
21
- "issues": []
22
- }
23
-
24
- # Проверка на пустой ответ
25
- if not agent_response:
26
- results["issues"].append("Ответ пустой")
27
- return results
28
-
29
- # Проверка на JSON формат
30
- try:
31
- json_obj = json.loads(agent_response)
32
- results["format_type"] = "JSON"
33
-
34
- # Проверка наличия ключа final_answer
35
- if "final_answer" in json_obj:
36
- final_answer = json_obj["final_answer"]
37
- results["extracted_answer"] = final_answer
38
-
39
- # Проверка на пустой final_answer
40
- if not final_answer:
41
- results["issues"].append("Ключ final_answer содержит пустое значение")
42
- else:
43
- results["is_valid"] = True
44
- else:
45
- results["issues"].append("JSON не содержит ключ 'final_answer'")
46
-
47
- except json.JSONDecodeError:
48
- # Если не JSON, проверяем как plain string
49
- results["format_type"] = "Plain String"
50
- results["extracted_answer"] = agent_response
51
-
52
- # Проверка на префиксы, которые могут помешать exact match
53
- prefixes = ["Answer:", "Response:", "A:", "The answer is:", "Final answer:"]
54
- for prefix in prefixes:
55
- if agent_response.startswith(prefix):
56
- results["issues"].append(f"Ответ содержит префикс '{prefix}', который может помешать exact match")
57
-
58
- # Если нет проблем с префиксами, считаем plain string валидным
59
- if not results["issues"]:
60
- results["is_valid"] = True
61
-
62
- return results
63
-
64
- def main():
65
- """
66
- Демонстрирует проверку различных форматов ответа
67
- """
68
- # Примеры ответов для тестирования
69
- test_responses = [
70
- # JSON с final_answer (правильный формат)
71
- '{"final_answer": "Paris"}',
72
-
73
- # Plain string (может работать, но не рекомендуется)
74
- "Paris",
75
-
76
- # JSON без final_answer (неправильный формат)
77
- '{"answer": "Paris", "confidence": 0.95}',
78
-
79
- # Plain string с префиксом (неправильный формат)
80
- "Answer: Paris",
81
-
82
- # Пустой ответ
83
- "",
84
-
85
- # JSON с пустым final_answer
86
- '{"final_answer": ""}'
87
- ]
88
-
89
- print("=== ПРОВЕРКА ФОРМАТОВ ОТВЕТА ДЛЯ HUGGING FACE GAIA ===\n")
90
-
91
- for i, response in enumerate(test_responses):
92
- print(f"Тест #{i+1}: {response}")
93
- results = test_agent_output_format(response)
94
-
95
- print(f" Формат: {results['format_type']}")
96
- print(f" Извлеченный ответ: {results['extracted_answer']}")
97
- print(f" Валидный: {'✓' if results['is_valid'] else '✗'}")
98
-
99
- if results["issues"]:
100
- print(" Проблемы:")
101
- for issue in results["issues"]:
102
- print(f" - {issue}")
103
- else:
104
- print(" Проблемы: нет")
105
-
106
- print()
107
-
108
- print("=== РЕКОМЕНДАЦИИ ===")
109
- print("1. Используйте формат JSON с ключом 'final_answer'")
110
- print("2. Убедитесь, что значение 'final_answer' не пустое")
111
- print("3. Избегайте префиксов в ответе")
112
- print("4. Проверьте, что ответ точно соответствует ожидаемому (exact match)")
113
-
114
- if __name__ == "__main__":
115
- main()