Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions pageindex/page_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,19 +180,22 @@ def extract_toc_content(content, model=None):
response = response + new_response
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"):
attempt += 1
if attempt > max_attempts:
raise Exception('Failed to complete table of contents after maximum retries')

chat_history = [
{"role": "user", "content": prompt},
{"role": "assistant", "content": response},
{"role": "user", "content": prompt},
{"role": "assistant", "content": response},
]
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)
response = response + new_response
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

Expand Down