ChatOpenAI
ChatOpenAI(=None,
system_prompt=None,
turns=None,
model=None,
api_key='https://api.openai.com/v1',
base_url=MISSING,
seed=None,
kwargs )
Chat with an OpenAI model.
OpenAI provides a number of chat based models under the ChatGPT moniker.
Prerequisites
Note that a ChatGPT Plus membership does not give you the ability to call models via the API. You will need to go to the developer platform to sign up (and pay for) a developer account that will give you an API key that you can use with this package.
ChatOpenAI
requires the openai
package (e.g., pip install openai
).
Examples
import os
from chatlas import ChatOpenAI
= ChatOpenAI(api_key=os.getenv("OPENAI_API_KEY"))
chat "What is the capital of France?") chat.chat(
Parameters
Name | Type | Description | Default |
---|---|---|---|
system_prompt | Optional[str] | A system prompt to set the behavior of the assistant. | None |
turns | Optional[list[Turn]] | A list of turns to start the chat with (i.e., continuing a previous conversation). If not provided, the conversation begins from scratch. Do not provide non-None values for both turns and system_prompt . Each message in the list should be a dictionary with at least role (usually system , user , or assistant , but tool is also possible). Normally there is also a content field, which is a string. |
None |
model | 'Optional[ChatModel | str]' | The model to use for the chat. The default, None, will pick a reasonable default, and warn you about it. We strongly recommend explicitly choosing a model for all but the most casual use. | None |
api_key | Optional[str] | The API key to use for authentication. You generally should not supply this directly, but instead set the OPENAI_API_KEY environment variable. |
None |
base_url | str | The base URL to the endpoint; the default uses OpenAI. | 'https://api.openai.com/v1' |
seed | int | None | MISSING_TYPE | Optional integer seed that ChatGPT uses to try and make output more reproducible. | MISSING |
kwargs | Optional['ChatClientArgs'] | Additional arguments to pass to the openai.OpenAI() client constructor. |
None |
Returns
Name | Type | Description |
---|---|---|
Chat | A chat object that retains the state of the conversation. |
Note
Pasting an API key into a chat constructor (e.g., ChatOpenAI(api_key="...")
) is the simplest way to get started, and is fine for interactive use, but is problematic for code that may be shared with others.
Instead, consider using environment variables or a configuration file to manage your credentials. One popular way to manage credentials is to use a .env
file to store your credentials, and then use the python-dotenv
package to load them into your environment.
pip install python-dotenv
# .env
OPENAI_API_KEY=...
from chatlas import ChatOpenAI
from dotenv import load_dotenv
load_dotenv()= ChatOpenAI()
chat chat.console()
Another, more general, solution is to load your environment variables into the shell before starting Python (maybe in a .bashrc
, .zshrc
, etc. file):
export OPENAI_API_KEY=...