Skip to content

Commit

Permalink
community: replace deprecated davinci models (#14860)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
efriis authored Dec 18, 2023
1 parent 193f107 commit 5f839be
Show file tree
Hide file tree
Showing 29 changed files with 42 additions and 42 deletions.
2 changes: 1 addition & 1 deletion cookbook/learned_prompt_optimization.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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\")"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion cookbook/tree_of_thought.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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\")"
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/guides/safety/moderation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/integrations/callbacks/promptlayer.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/integrations/callbacks/sagemaker_tracking.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/integrations/llms/azure_openai.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
")"
]
},
Expand Down Expand Up @@ -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"
]
}
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/integrations/llms/edenai.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/integrations/llms/javelin.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
10 changes: 5 additions & 5 deletions docs/docs/integrations/llms/llm_caching.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
]
},
{
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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)"
]
},
{
Expand Down Expand Up @@ -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)"
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/integrations/providers/log10.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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)
```
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/integrations/providers/predictionguard.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/integrations/toolkits/openapi.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/integrations/toolkits/openapi_nla.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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."
]
},
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/integrations/toolkits/powerbi.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/modules/agents/agent_types/react_docstore.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
]
},
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/modules/agents/how_to/intermediate_steps.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
]
},
Expand Down
6 changes: 3 additions & 3 deletions docs/docs/modules/model_io/llms/llm_caching.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
```


Expand Down
2 changes: 1 addition & 1 deletion docs/docs/modules/model_io/output_parsers/index.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
]
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/modules/model_io/output_parsers/pydantic.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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)"
]
Expand Down
2 changes: 1 addition & 1 deletion libs/community/langchain_community/embeddings/edenai.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
"""

Expand Down
2 changes: 1 addition & 1 deletion libs/community/langchain_community/llms/edenai.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
"""

Expand Down
8 changes: 4 additions & 4 deletions libs/community/langchain_community/llms/openai.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ def is_lc_serializable(cls) -> bool:

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."""
Expand Down Expand Up @@ -657,7 +657,7 @@ def modelname_to_contextsize(modelname: str) -> int:
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,
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions libs/community/tests/integration_tests/llms/test_openai.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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"}
],
Expand Down
2 changes: 1 addition & 1 deletion libs/community/tests/unit_tests/llms/test_openai.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"}
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

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 "
Expand Down

0 comments on commit 5f839be

Please sign in to comment.