Skip to main content

dspy.OpenAI

Usage

lm = dspy.OpenAI(model='gpt-3.5-turbo')

Constructor

The constructor initializes the base class LM and verifies the provided arguments like the api_provider, api_key, and api_base to set up OpenAI request retrieval. The kwargs attribute is initialized with default values for relevant text generation parameters needed for communicating with the GPT API, such as temperature, max_tokens, top_p, frequency_penalty, presence_penalty, and n.

class OpenAI(LM):
def __init__(
self,
model: str = "text-davinci-002",
api_key: Optional[str] = None,
api_provider: Literal["openai"] = "openai",
model_type: Literal["chat", "text"] = None,
**kwargs,
):

Parameters:

  • api_key (Optional[str], optional): API provider authentication token. Defaults to None.
  • api_provider (Literal["openai"], optional): API provider to use. Defaults to "openai".
  • model_type (Literal["chat", "text"]): Specified model type to use.
  • **kwargs: Additional language model arguments to pass to the API provider.

Methods

__call__(self, prompt: str, only_completed: bool = True, return_sorted: bool = False, **kwargs) -> List[Dict[str, Any]]

Retrieves completions from OpenAI by calling request.

Internally, the method handles the specifics of preparing the request prompt and corresponding payload to obtain the response.

After generation, the completions are post-processed based on the model_type parameter. If the parameter is set to 'chat', the generated content look like choice["message"]["content"]. Otherwise, the generated text will be choice["text"].

Parameters:

  • prompt (str): Prompt to send to OpenAI.
  • only_completed (bool, optional): Flag to return only completed responses and ignore completion due to length. Defaults to True.
  • return_sorted (bool, optional): Flag to sort the completion choices using the returned averaged log-probabilities. Defaults to False.
  • **kwargs: Additional keyword arguments for completion request.

Returns:

  • List[Dict[str, Any]]: List of completion choices.