forked from Alishahryar1/free-claude-code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path__init__.py
More file actions
60 lines (54 loc) · 1.85 KB
/
Copy path__init__.py
File metadata and controls
60 lines (54 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
"""OpenAI-compatible provider family."""
from free_claude_code.providers.admission import ProviderAdmissionController
from free_claude_code.providers.base import ProviderConfig
from .base_url import openai_v1_base_url
from .extra_body import (
validate_extra_body_does_not_override_canonical_fields,
validate_extra_body_does_not_override_reasoning_fields,
)
from .profiles import OPENAI_CHAT_PROFILES, OpenAIChatProfile
from .provider import OpenAIAsyncCredentialProvider, OpenAIChatProvider
from .reasoning import (
NO_REASONING,
ChatTemplateReasoning,
NamedEffortReasoning,
ReasoningObject,
)
from .request_codec import ReasoningReplayMode
from .request_policy import OpenAIChatRequestPolicy, build_openai_chat_request_body
from .usage import usage_int
def create_openai_chat_provider(
provider_id: str,
config: ProviderConfig,
admission: ProviderAdmissionController,
) -> OpenAIChatProvider:
"""Construct one profile-driven provider."""
profile = OPENAI_CHAT_PROFILES.get(provider_id)
if profile is None:
raise KeyError(f"No declarative OpenAI-chat profile for {provider_id!r}")
return OpenAIChatProvider(
config,
profile=profile,
admission=admission,
default_headers=(
{"User-Agent": profile.user_agent} if profile.user_agent else None
),
)
__all__ = [
"NO_REASONING",
"OPENAI_CHAT_PROFILES",
"ChatTemplateReasoning",
"NamedEffortReasoning",
"OpenAIAsyncCredentialProvider",
"OpenAIChatProfile",
"OpenAIChatProvider",
"OpenAIChatRequestPolicy",
"ReasoningObject",
"ReasoningReplayMode",
"build_openai_chat_request_body",
"create_openai_chat_provider",
"openai_v1_base_url",
"usage_int",
"validate_extra_body_does_not_override_canonical_fields",
"validate_extra_body_does_not_override_reasoning_fields",
]