mirror of
https://github.com/VectifyAI/PageIndex.git
synced 2026-06-06 19:35:41 +02:00
Merge pull request #65 from luojiyin1987/fix/extract-toc-infinite-loop
fix: prevent infinite loop in extract_toc_content
This commit is contained in:
commit
599d2ce497
1 changed files with 9 additions and 6 deletions
|
|
@ -180,19 +180,22 @@ def extract_toc_content(content, model=None):
|
||||||
response = response + new_response
|
response = response + new_response
|
||||||
if_complete = check_if_toc_transformation_is_complete(content, response, model)
|
if_complete = check_if_toc_transformation_is_complete(content, response, model)
|
||||||
|
|
||||||
|
attempt = 0
|
||||||
|
max_attempts = 5
|
||||||
|
|
||||||
while not (if_complete == "yes" and finish_reason == "finished"):
|
while not (if_complete == "yes" and finish_reason == "finished"):
|
||||||
|
attempt += 1
|
||||||
|
if attempt > max_attempts:
|
||||||
|
raise Exception('Failed to complete table of contents after maximum retries')
|
||||||
|
|
||||||
chat_history = [
|
chat_history = [
|
||||||
{"role": "user", "content": prompt},
|
{"role": "user", "content": prompt},
|
||||||
{"role": "assistant", "content": response},
|
{"role": "assistant", "content": response},
|
||||||
]
|
]
|
||||||
prompt = f"""please continue the generation of table of contents , directly output the remaining part of the structure"""
|
prompt = f"""please continue the generation of table of contents , directly output the remaining part of the structure"""
|
||||||
new_response, finish_reason = ChatGPT_API_with_finish_reason(model=model, prompt=prompt, chat_history=chat_history)
|
new_response, finish_reason = ChatGPT_API_with_finish_reason(model=model, prompt=prompt, chat_history=chat_history)
|
||||||
response = response + new_response
|
response = response + new_response
|
||||||
if_complete = check_if_toc_transformation_is_complete(content, response, model)
|
if_complete = check_if_toc_transformation_is_complete(content, response, model)
|
||||||
|
|
||||||
# Optional: Add a maximum retry limit to prevent infinite loops
|
|
||||||
if len(chat_history) > 5: # Arbitrary limit of 10 attempts
|
|
||||||
raise Exception('Failed to complete table of contents after maximum retries')
|
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue