ask questions on websites

This commit is contained in:
Preston Jensen
2023-04-03 19:20:42 -06:00
parent f6c201f038
commit 8a08b0c01b
3 changed files with 24 additions and 43 deletions

View File

@@ -74,30 +74,25 @@ def split_text(text, max_length=8192):
yield "\n".join(current_chunk)
def summarize_text(text, is_website=True):
if text == "":
def create_message(chunk, question):
return {
"role": "user",
"content": f"\"\"\"{chunk}\"\"\" Using the above text, please answer the following question: \"{question}\" -- if the question cannot be answered using the text, please summarize the text."
}
def summarize_text(text, question):
if not text:
return "Error: No text to summarize"
print("Text length: " + str(len(text)) + " characters")
text_length = len(text)
print(f"Text length: {text_length} characters")
summaries = []
chunks = list(split_text(text))
for i, chunk in enumerate(chunks):
print("Summarizing chunk " + str(i + 1) + " / " + str(len(chunks)))
if is_website:
messages = [
{
"role": "user",
"content": "Please summarize the following website text, do not describe the general website, but instead concisely extract the specific information this subpage contains.: " +
chunk},
]
else:
messages = [
{
"role": "user",
"content": "Please summarize the following text, focusing on extracting concise and specific information: " +
chunk},
]
print(f"Summarizing chunk {i + 1} / {len(chunks)}")
messages = [create_message(chunk, question)]
summary = create_chat_completion(
model=cfg.fast_llm_model,
@@ -105,25 +100,11 @@ def summarize_text(text, is_website=True):
max_tokens=300,
)
summaries.append(summary)
print("Summarized " + str(len(chunks)) + " chunks.")
print(f"Summarized {len(chunks)} chunks.")
combined_summary = "\n".join(summaries)
# Summarize the combined summary
if is_website:
messages = [
{
"role": "user",
"content": "Please summarize the following website text, do not describe the general website, but instead concisely extract the specific information this subpage contains.: " +
combined_summary},
]
else:
messages = [
{
"role": "user",
"content": "Please summarize the following text, focusing on extracting concise and specific infomation: " +
combined_summary},
]
messages = [create_message(combined_summary, question)]
final_summary = create_chat_completion(
model=cfg.fast_llm_model,
@@ -131,4 +112,4 @@ def summarize_text(text, is_website=True):
max_tokens=300,
)
return final_summary
return final_summary