Source code for psifx.text.llm.openai.tool
"""openai model."""
import os
from typing import Optional
from langchain_core.language_models import BaseChatModel
from langchain_openai import ChatOpenAI
[docs]
def get_openai(model: str = 'gpt-4o', api_key: Optional[str] = None, temperature: int = 0,
max_tokens: Optional[int] = None, timeout: Optional[int] = None,
max_retries: int = 2, **kwargs) -> BaseChatModel:
"""
Get an openai langchain base chat model.
:param model: Name of the model to use.
:param api_key: Api key (if not provided the user is prompted for it).
:param temperature: Temperature.
:param max_tokens: Max number of tokens.
:param timeout: Timeout.
:param max_retries: Max retries.
:param kwargs: Optional key value arguments.
:return: An openai langchain base chat model.
"""
api_key = api_key or os.environ.get('OPENAI_API_KEY')
return ChatOpenAI(
model=model,
api_key=api_key,
temperature=temperature,
max_tokens=max_tokens,
timeout=timeout,
max_retries=max_retries,
**kwargs
)