MCPcopy Create free account
hub / github.com/OpenPipe/OpenPipe / ChatOpenAI

Class ChatOpenAI

client-libs/python/openpipe/langchain_llm.py:10–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8
9
10class ChatOpenAI(ChatOpenAIBase):
11 openpipe_kwargs: Dict[str, str] = Field(
12 default_factory=lambda: {"verify_ssl": False}
13 )
14
15 @root_validator()
16 def validate_environment(cls, values: Dict) -> Dict:
17 """Validate that api key and python package exists in environment."""
18 if values["n"] < 1:
19 raise ValueError("n must be at least 1.")
20 if values["n"] > 1 and values["streaming"]:
21 raise ValueError("n must be 1 when streaming.")
22
23 values["openai_api_key"] = get_from_dict_or_env(
24 values, "openai_api_key", "OPENAI_API_KEY"
25 )
26 # Check OPENAI_ORGANIZATION for backwards compatibility.
27 values["openai_organization"] = (
28 values["openai_organization"]
29 or os.getenv("OPENAI_ORG_ID")
30 or os.getenv("OPENAI_ORGANIZATION")
31 )
32 values["openai_api_base"] = values["openai_api_base"] or os.getenv(
33 "OPENAI_API_BASE"
34 )
35 values["openai_proxy"] = get_from_dict_or_env(
36 values,
37 "openai_proxy",
38 "OPENAI_PROXY",
39 default="",
40 )
41 try:
42 import openai
43 from . import OpenAI
44 from .openai_sync_wrapper import OpenAIWrapper as OpenAI
45 from .openai_async_wrapper import AsyncOpenAIWrapper as AsyncOpenAI
46
47 except ImportError:
48 raise ImportError(
49 "Could not import openai python package. "
50 "Please install it with `pip install openai`."
51 )
52
53 if is_openai_v1():
54 client_params = {
55 "api_key": values["openai_api_key"],
56 "organization": values["openai_organization"],
57 "base_url": values["openai_api_base"],
58 "timeout": values["request_timeout"],
59 "max_retries": values["max_retries"],
60 "default_headers": values["default_headers"],
61 "default_query": values["default_query"],
62 "http_client": values["http_client"],
63 "openpipe": values["openpipe_kwargs"],
64 }
65 values["client"] = OpenAI(**client_params).chat.completions
66 values["async_client"] = AsyncOpenAI(**client_params).chat.completions
67 else:

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected