Spaces:
Runtime error
Runtime error
Code refactoring
Browse files
app.py
CHANGED
@@ -45,35 +45,40 @@ def format_results(results):
|
|
45 |
output = output.strip()
|
46 |
return output
|
47 |
|
48 |
-
def
|
49 |
-
|
50 |
-
questions = questions.split('\n')
|
51 |
-
if len(tags) == 0:
|
52 |
raise gr.Error("Validation error. It is necessary to set at least one tag")
|
53 |
if len(tags) > MAX_TAGS_COUNT:
|
54 |
raise gr.Error(f"Validation error. The maximum allowed number of tags is {MAX_TAGS_COUNT}.")
|
55 |
-
|
|
|
|
|
56 |
raise gr.Error("Validation error. It is necessary to ask at least one question")
|
57 |
if len(questions) > MAX_QUESTIONS_COUNT:
|
58 |
raise gr.Error(f"Validation error. The maximum allowed number of questions is {MAX_QUESTIONS_COUNT}.")
|
59 |
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
results = []
|
62 |
for question in questions:
|
63 |
-
tagged_question =
|
64 |
-
attempt
|
65 |
-
while attempt < MAX_ATTEMPS:
|
66 |
answer = get_answer(tagged_question)
|
67 |
if answer['status']:
|
68 |
results.append((question, answer['content']))
|
69 |
break
|
|
|
|
|
70 |
else:
|
71 |
-
|
72 |
-
|
73 |
-
results.append((question, 'An error occurred while receiving data.'))
|
74 |
-
else:
|
75 |
-
time.sleep(WAIT_TIME)
|
76 |
-
continue
|
77 |
return format_results(results)
|
78 |
|
79 |
inputs = [
|
|
|
45 |
output = output.strip()
|
46 |
return output
|
47 |
|
48 |
+
def validate_tags(tags):
|
49 |
+
if not tags:
|
|
|
|
|
50 |
raise gr.Error("Validation error. It is necessary to set at least one tag")
|
51 |
if len(tags) > MAX_TAGS_COUNT:
|
52 |
raise gr.Error(f"Validation error. The maximum allowed number of tags is {MAX_TAGS_COUNT}.")
|
53 |
+
|
54 |
+
def validate_questions(questions):
|
55 |
+
if not questions:
|
56 |
raise gr.Error("Validation error. It is necessary to ask at least one question")
|
57 |
if len(questions) > MAX_QUESTIONS_COUNT:
|
58 |
raise gr.Error(f"Validation error. The maximum allowed number of questions is {MAX_QUESTIONS_COUNT}.")
|
59 |
|
60 |
+
def find_answers(tags, questions):
|
61 |
+
tags = tags.split('\n')
|
62 |
+
questions = questions.split('\n')
|
63 |
+
|
64 |
+
validate_tags(tags)
|
65 |
+
validate_questions(questions)
|
66 |
+
|
67 |
+
tags_str = ''.join([f"[{tag}]" for tag in tags])
|
68 |
+
|
69 |
results = []
|
70 |
for question in questions:
|
71 |
+
tagged_question = f"{tags_str} {question}"
|
72 |
+
for attempt in range(MAX_ATTEMPS):
|
|
|
73 |
answer = get_answer(tagged_question)
|
74 |
if answer['status']:
|
75 |
results.append((question, answer['content']))
|
76 |
break
|
77 |
+
elif attempt == MAX_ATTEMPS - 1:
|
78 |
+
results.append((question, 'An error occurred while receiving data.'))
|
79 |
else:
|
80 |
+
time.sleep(WAIT_TIME)
|
81 |
+
|
|
|
|
|
|
|
|
|
82 |
return format_results(results)
|
83 |
|
84 |
inputs = [
|