import openai import time import os # Set your OpenAI API key openai.api_key = os.getenv("OPENAI_API_KEY") def generate_response_from_document(query, retrieved_docs): if not retrieved_docs: # Check if no documents were retrieved return "I cannot answer the question due to insufficient information in the documents." # context = " ".join([doc.page_content for doc in retrieved_docs]) # Now iterates over Document objects context = " ".join([doc for doc in retrieved_docs]) prompt = """ "You are an accurate and reliable AI assistant that can answer questions with the help of external documents. Please note that external documents may contain noisy or factually incorrect information. If the information in the document contains the correct answer, you will give an accurate answer. If the information in the document does not contain the answer, you will generate ’I can not answer the question because of the insufficient information in documents.‘. If there are inconsistencies with the facts in some of the documents, please generate the response 'There are factual errors in the provided documents.' and provide the correct answer." Context or Document: {context} Query: {query} """ # prompt = ( # "You are a highly intelligent assistant tasked with answering a question based strictly on the provided context. " # f"Given Question: {query} \n\n" # f"Context: {context} \n" # f"Answer the question directly and concisely using only the information available in the context." # "Do not include any other information which is not there in the context." # ) try: response = openai.chat.completions.create( # Use the new chat completions API model= "gpt-3.5-turbo", #"gpt-4", #"gpt-3.5-turbo" Or use another suitable model like gpt-4 messages=[{"role": "user", "content": prompt}], max_tokens=300, temperature=0.7, ) return response.choices[0].message.content.strip() # Extract content from message except Exception as e: return f"Error generating response: {str(e)}"