I developed a chatbot utilizing OpenAI's API for PDF question answering, relying on the text-davinci-003 model. However, following OpenAI's recent announcement about the deprecation of certain models, such as text-davinci-003, my chatbot encounters an error:
'openai.error.InvalidRequestError: The model text-davinci-003 has been deprecated'.
My chatbot is built in Python using Streamlit. I need some help figuring out how to modify my code to fix this and switch to a supported model. Any insights or assistance would be very much appreciated.
Here is my code:
from dotenv import load_dotenv
import streamlit as st
from PyPDF2 import PdfReader
from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.chains.question_answering import load_qa_chain
from langchain.llms import OpenAI
def main():
load_dotenv()
st.set_page_config(page_title="Ask your pdf", layout="centered",initial_sidebar_state="auto")
st.header("Ask your pdf(OpenAI) ")
# Uploading the file
pdf = st.file_uploader("Upload your pdf", type="pdf")
# Extracting the text
if pdf is not None:
pdf_reader = PdfReader(pdf)
text = ""
for page in pdf_reader.pages:
text += page.extract_text()
# Split into chunks
text_splitter = CharacterTextSplitter(
separator="\n", # Defines a new line
chunk_size = 1000,
chunk_overlap = 200,
length_function = len
)
chunks = text_splitter.split_text(text)
# Create embeddings
embeddings = OpenAIEmbeddings()
# Creating an object on which we will be able to search FAISS
knowledge_base = FAISS.from_texts(chunks, embeddings)
# show user input
user_question = st.text_input("Ask a question about the PDF: ")
if st.button("Refresh Page"):
st.caching.clear_cache()
if user_question:
docs = knowledge_base.similarity_search(user_question)
llm = OpenAI()
chain = load_qa_chain(llm, chain_type="stuff")
response = chain.run(input_documents=docs, question = user_question)
st.write(response)
if __name__ == '__main__':
main()
On January 4, 2024, OpenAI deprecated a lot of models.
See the deprecated models and recommended replacements in the tables below.
In your case, change
text-davinci-003forgpt-3.5-turbo-instruct.Instruct GPT models
text-ada-001gpt-3.5-turbo-instructtext-babbage-001gpt-3.5-turbo-instructtext-curie-001gpt-3.5-turbo-instructtext-davinci-001gpt-3.5-turbo-instructtext-davinci-002gpt-3.5-turbo-instructtext-davinci-003gpt-3.5-turbo-instructBase GPT models
adababbage-002babbagebabbage-002curiedavinci-002davincidavinci-002code-davinci-002gpt-3.5-turbo-instructFine-tuning GPT models
adababbage-002babbagebabbage-002curiedavinci-002davincidavinci-002,gpt-3.5-turbo,gpt-4Edit models
text-davinci-edit-001gpt-4code-davinci-edit-001gpt-4Embedding models
text-similarity-ada-001text-embedding-ada-002text-search-ada-doc-001text-embedding-ada-002text-search-ada-query-001text-embedding-ada-002code-search-ada-code-001text-embedding-ada-002code-search-ada-text-001text-embedding-ada-002text-similarity-babbage-001text-embedding-ada-002text-search-babbage-doc-001text-embedding-ada-002text-search-babbage-query-001text-embedding-ada-002code-search-babbage-code-001text-embedding-ada-002code-search-babbage-text-001text-embedding-ada-002text-similarity-curie-001text-embedding-ada-002text-search-curie-doc-001text-embedding-ada-002text-search-curie-query-001text-embedding-ada-002text-similarity-davinci-001text-embedding-ada-002text-search-davinci-doc-001text-embedding-ada-002text-search-davinci-query-001text-embedding-ada-002