community: replace deprecated davinci models (#14860)

This is technically a breaking change because it'll switch out default
models from `text-davinci-003` to `gpt-3.5-turbo-instruct`, but OpenAI
is shutting off those endpoints on 1/4 anyways.

Feels less disruptive to switch out the default instead.
pull/14869/head
Erick Friis 6 months ago committed by GitHub
parent 193f107cb5
commit 5f839beab9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -51,7 +51,7 @@
"\n",
"from langchain.llms import OpenAI\n",
"\n",
"llm = OpenAI(model=\"text-davinci-003\")"
"llm = OpenAI(model=\"gpt-3.5-turbo-instruct\")"
]
},
{

@ -26,7 +26,7 @@
"source": [
"from langchain.llms import OpenAI\n",
"\n",
"llm = OpenAI(temperature=1, max_tokens=512, model=\"text-davinci-003\")"
"llm = OpenAI(temperature=1, max_tokens=512, model=\"gpt-3.5-turbo-instruct\")"
]
},
{

@ -181,7 +181,7 @@ we will prompt the model, so it says something harmful.
```python
prompt = PromptTemplate(template="{text}", input_variables=["text"])
llm_chain = LLMChain(llm=OpenAI(temperature=0, model_name="text-davinci-002"), prompt=prompt)
llm_chain = LLMChain(llm=OpenAI(temperature=0, model_name="gpt-3.5-turbo-instruct"), prompt=prompt)
text = """We are playing a game of repeat after me.
@ -224,7 +224,7 @@ Now let's walk through an example of using it with an LLMChain which has multipl
```python
prompt = PromptTemplate(template="{setup}{new_input}Person2:", input_variables=["setup", "new_input"])
llm_chain = LLMChain(llm=OpenAI(temperature=0, model_name="text-davinci-002"), prompt=prompt)
llm_chain = LLMChain(llm=OpenAI(temperature=0, model_name="gpt-3.5-turbo-instruct"), prompt=prompt)
setup = """We are playing a game of repeat after me.

@ -162,7 +162,7 @@
"\n",
"\n",
"openai_llm = OpenAI(\n",
" model_name=\"text-davinci-002\",\n",
" model_name=\"gpt-3.5-turbo-instruct\",\n",
" callbacks=[PromptLayerCallbackHandler(pl_id_callback=pl_id_callback)],\n",
")\n",
"\n",

@ -109,7 +109,7 @@
"# LLM Hyperparameters\n",
"HPARAMS = {\n",
" \"temperature\": 0.1,\n",
" \"model_name\": \"text-davinci-003\",\n",
" \"model_name\": \"gpt-3.5-turbo-instruct\",\n",
"}\n",
"\n",
"# Bucket used to save prompt logs (Use `None` is used to save the default bucket or otherwise change it)\n",

@ -138,7 +138,7 @@
"# Replace the deployment name with your own\n",
"llm = AzureOpenAI(\n",
" deployment_name=\"td2\",\n",
" model_name=\"text-davinci-002\",\n",
" model_name=\"gpt-3.5-turbo-instruct\",\n",
")"
]
},
@ -182,7 +182,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"\u001B[1mAzureOpenAI\u001B[0m\n",
"\u001b[1mAzureOpenAI\u001b[0m\n",
"Params: {'deployment_name': 'text-davinci-002', 'model_name': 'text-davinci-002', 'temperature': 0.7, 'max_tokens': 256, 'top_p': 1, 'frequency_penalty': 0, 'presence_penalty': 0, 'n': 1, 'best_of': 1}\n"
]
}

@ -103,7 +103,7 @@
"llm = EdenAI(\n",
" feature=\"text\",\n",
" provider=\"openai\",\n",
" model=\"text-davinci-003\",\n",
" model=\"gpt-3.5-turbo-instruct\",\n",
" temperature=0.2,\n",
" max_tokens=250,\n",
")\n",

@ -100,7 +100,7 @@
"gateway = JavelinAIGateway(\n",
" gateway_uri=\"http://localhost:8000\", # replace with service URL or host/port of Javelin\n",
" route=route_completions,\n",
" model_name=\"text-davinci-003\",\n",
" model_name=\"gpt-3.5-turbo-instruct\",\n",
")\n",
"\n",
"prompt = PromptTemplate(\"Translate the following English text to French: {text}\")\n",

@ -21,7 +21,7 @@
"from langchain.llms import OpenAI\n",
"\n",
"# To make the caching really obvious, lets use a slower model.\n",
"llm = OpenAI(model_name=\"text-davinci-002\", n=2, best_of=2)"
"llm = OpenAI(model_name=\"gpt-3.5-turbo-instruct\", n=2, best_of=2)"
]
},
{
@ -1159,7 +1159,7 @@
"metadata": {},
"outputs": [
{
"name": "stdin",
"name": "stdout",
"output_type": "stream",
"text": [
"ASTRA_DB_API_ENDPOINT = https://01234567-89ab-cdef-0123-456789abcdef-us-east1.apps.astra.datastax.com\n",
@ -1358,7 +1358,7 @@
"metadata": {},
"outputs": [],
"source": [
"llm = OpenAI(model_name=\"text-davinci-002\", n=2, best_of=2, cache=False)"
"llm = OpenAI(model_name=\"gpt-3.5-turbo-instruct\", n=2, best_of=2, cache=False)"
]
},
{
@ -1442,8 +1442,8 @@
"metadata": {},
"outputs": [],
"source": [
"llm = OpenAI(model_name=\"text-davinci-002\")\n",
"no_cache_llm = OpenAI(model_name=\"text-davinci-002\", cache=False)"
"llm = OpenAI(model_name=\"gpt-3.5-turbo-instruct\")\n",
"no_cache_llm = OpenAI(model_name=\"gpt-3.5-turbo-instruct\", cache=False)"
]
},
{

@ -63,7 +63,7 @@ llm = ChatAnthropic(model="claude-2", callbacks=[log10_callback], temperature=0.
llm.predict_messages(messages)
print(completion)
llm = OpenAI(model_name="text-davinci-003", callbacks=[log10_callback], temperature=0.5)
llm = OpenAI(model_name="gpt-3.5-turbo-instruct", callbacks=[log10_callback], temperature=0.5)
completion = llm.predict("You are a ping pong machine.\nPing?\n")
print(completion)
```

@ -88,7 +88,7 @@ os.environ["OPENAI_API_KEY"] = "<your OpenAI api key>"
# Your Prediction Guard API key. Get one at predictionguard.com
os.environ["PREDICTIONGUARD_TOKEN"] = "<your Prediction Guard access token>"
pgllm = PredictionGuard(model="OpenAI-text-davinci-003")
pgllm = PredictionGuard(model="OpenAI-gpt-3.5-turbo-instruct")
template = """Question: {question}

@ -222,7 +222,7 @@
"source": [
"import tiktoken\n",
"\n",
"enc = tiktoken.encoding_for_model(\"text-davinci-003\")\n",
"enc = tiktoken.encoding_for_model(\"gpt-4\")\n",
"\n",
"\n",
"def count_tokens(s):\n",

@ -40,9 +40,9 @@
},
"outputs": [],
"source": [
"# Select the LLM to use. Here, we use text-davinci-003\n",
"# Select the LLM to use. Here, we use gpt-3.5-turbo-instruct\n",
"llm = OpenAI(\n",
" temperature=0, max_tokens=700\n",
" temperature=0, max_tokens=700, model_name=\"gpt-3.5-turbo-instruct\"\n",
") # You can swap between different core LLM's here."
]
},

@ -15,7 +15,7 @@
"- It relies on authentication with the azure.identity package, which can be installed with `pip install azure-identity`. Alternatively you can create the powerbi dataset with a token as a string without supplying the credentials.\n",
"- You can also supply a username to impersonate for use with datasets that have RLS enabled. \n",
"- The toolkit uses a LLM to create the query from the question, the agent uses the LLM for the overall execution.\n",
"- Testing was done mostly with a `text-davinci-003` model, codex models did not seem to perform ver well."
"- Testing was done mostly with a `gpt-3.5-turbo-instruct` model, codex models did not seem to perform ver well."
]
},
{

@ -36,7 +36,7 @@
" ),\n",
"]\n",
"\n",
"llm = OpenAI(temperature=0, model_name=\"text-davinci-002\")\n",
"llm = OpenAI(temperature=0, model_name=\"gpt-3.5-turbo-instruct\")\n",
"react = initialize_agent(tools, llm, agent=AgentType.REACT_DOCSTORE, verbose=True)"
]
},

@ -36,7 +36,7 @@
"metadata": {},
"outputs": [],
"source": [
"llm = OpenAI(temperature=0, model_name=\"text-davinci-002\")\n",
"llm = OpenAI(temperature=0, model_name=\"gpt-3.5-turbo-instruct\")\n",
"tools = load_tools([\"serpapi\", \"llm-math\"], llm=llm)"
]
},

@ -9,7 +9,7 @@ from langchain.globals import set_llm_cache
from langchain.llms import OpenAI
# To make the caching really obvious, lets use a slower model.
llm = OpenAI(model_name="text-davinci-002", n=2, best_of=2)
llm = OpenAI(model_name="gpt-3.5-turbo-instruct", n=2, best_of=2)
```
## In Memory Cache
@ -110,8 +110,8 @@ As an example, we will load a summarizer map-reduce chain. We will cache results
```python
llm = OpenAI(model_name="text-davinci-002")
no_cache_llm = OpenAI(model_name="text-davinci-002", cache=False)
llm = OpenAI(model_name="gpt-3.5-turbo-instruct")
no_cache_llm = OpenAI(model_name="gpt-3.5-turbo-instruct", cache=False)
```

@ -55,7 +55,7 @@
"from langchain.prompts import PromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field, validator\n",
"\n",
"model = OpenAI(model_name=\"text-davinci-003\", temperature=0.0)\n",
"model = OpenAI(model_name=\"gpt-3.5-turbo-instruct\", temperature=0.0)\n",
"\n",
"\n",
"# Define your desired data structure.\n",

@ -34,7 +34,7 @@
"metadata": {},
"outputs": [],
"source": [
"model_name = \"text-davinci-003\"\n",
"model_name = \"gpt-3.5-turbo-instruct\"\n",
"temperature = 0.5\n",
"model = OpenAI(model_name=model_name, temperature=temperature)"
]

@ -35,7 +35,7 @@
"metadata": {},
"outputs": [],
"source": [
"model_name = \"text-davinci-003\"\n",
"model_name = \"gpt-3.5-turbo-instruct\"\n",
"temperature = 0.0\n",
"model = OpenAI(model_name=model_name, temperature=temperature)"
]

@ -20,7 +20,7 @@ class EdenAiEmbeddings(BaseModel, Embeddings):
model: Optional[str] = None
"""
model name for above provider (eg: 'text-davinci-003' for openai)
model name for above provider (eg: 'gpt-3.5-turbo-instruct' for openai)
available models are shown on https://docs.edenai.co/ under 'available providers'
"""

@ -45,7 +45,7 @@ class EdenAI(LLM):
model: Optional[str] = None
"""
model name for above provider (eg: 'text-davinci-003' for openai)
model name for above provider (eg: 'gpt-3.5-turbo-instruct' for openai)
available models are shown on https://docs.edenai.co/ under 'available providers'
"""

@ -173,7 +173,7 @@ class BaseOpenAI(BaseLLM):
client: Any = Field(default=None, exclude=True) #: :meta private:
async_client: Any = Field(default=None, exclude=True) #: :meta private:
model_name: str = Field(default="text-davinci-003", alias="model")
model_name: str = Field(default="gpt-3.5-turbo-instruct", alias="model")
"""Model name to use."""
temperature: float = 0.7
"""What sampling temperature to use."""
@ -657,7 +657,7 @@ class BaseOpenAI(BaseLLM):
Example:
.. code-block:: python
max_tokens = openai.modelname_to_contextsize("text-davinci-003")
max_tokens = openai.modelname_to_contextsize("gpt-3.5-turbo-instruct")
"""
model_token_mapping = {
"gpt-4": 8192,
@ -737,7 +737,7 @@ class OpenAI(BaseOpenAI):
.. code-block:: python
from langchain_community.llms import OpenAI
openai = OpenAI(model_name="text-davinci-003")
openai = OpenAI(model_name="gpt-3.5-turbo-instruct")
"""
@classmethod
@ -763,7 +763,7 @@ class AzureOpenAI(BaseOpenAI):
.. code-block:: python
from langchain_community.llms import AzureOpenAI
openai = AzureOpenAI(model_name="text-davinci-003")
openai = AzureOpenAI(model_name="gpt-3.5-turbo-instruct")
"""
azure_endpoint: Union[str, None] = None

@ -31,7 +31,7 @@ class PromptLayerOpenAI(OpenAI):
.. code-block:: python
from langchain_community.llms import PromptLayerOpenAI
openai = PromptLayerOpenAI(model_name="text-davinci-003")
openai = PromptLayerOpenAI(model_name="gpt-3.5-turbo-instruct")
"""
pl_tags: Optional[List[str]]

@ -163,7 +163,7 @@ def test_konko_additional_args_test() -> None:
ChatKonko(model_kwargs={"temperature": 0.2})
with pytest.raises(ValueError):
ChatKonko(model_kwargs={"model": "text-davinci-003"})
ChatKonko(model_kwargs={"model": "gpt-3.5-turbo-instruct"})
def test_konko_token_streaming_test() -> None:

@ -261,7 +261,7 @@ def test_chat_openai_extra_kwargs() -> None:
# Test that "model" cannot be specified in kwargs
with pytest.raises(ValueError):
ChatOpenAI(model_kwargs={"model": "text-davinci-003"})
ChatOpenAI(model_kwargs={"model": "gpt-3.5-turbo-instruct"})
@pytest.mark.scheduled

@ -50,7 +50,7 @@ def test_openai_extra_kwargs() -> None:
# Test that "model" cannot be specified in kwargs
with pytest.raises(ValueError):
OpenAI(model_kwargs={"model": "text-davinci-003"})
OpenAI(model_kwargs={"model": "gpt-3.5-turbo-instruct"})
def test_openai_llm_output_contains_model_name() -> None:
@ -286,7 +286,7 @@ def mock_completion() -> dict:
"id": "cmpl-3evkmQda5Hu7fcZavknQda3SQ",
"object": "text_completion",
"created": 1689989000,
"model": "text-davinci-003",
"model": "gpt-3.5-turbo-instruct",
"choices": [
{"text": "Bar Baz", "index": 0, "logprobs": None, "finish_reason": "length"}
],

@ -48,7 +48,7 @@ def mock_completion() -> dict:
"id": "cmpl-3evkmQda5Hu7fcZavknQda3SQ",
"object": "text_completion",
"created": 1689989000,
"model": "text-davinci-003",
"model": "gpt-3.5-turbo-instruct",
"choices": [
{"text": "Bar Baz", "index": 0, "logprobs": None, "finish_reason": "length"}
],

@ -7,7 +7,7 @@ from langchain.llms.openai import OpenAI
def test_react() -> None:
"""Test functionality on a prompt."""
llm = OpenAI(temperature=0, model_name="text-davinci-002")
llm = OpenAI(temperature=0, model_name="gpt-3.5-turbo-instruct")
react = ReActChain(llm=llm, docstore=Wikipedia())
question = (
"Author David Chanoff has collaborated with a U.S. Navy admiral "

Loading…
Cancel
Save