Buckets:
| import type { RouteDefaultsInput } from "../route/client" | |
| import { Auth } from "../route/auth" | |
| import type { ProviderAuthOption } from "../route/auth-options" | |
| import { ProviderID, type ModelID } from "../schema" | |
| import * as AnthropicMessages from "../protocols/anthropic-messages" | |
| export const id = ProviderID.make("anthropic") | |
| export const routes = [AnthropicMessages.route] | |
| export type Config = RouteDefaultsInput & ProviderAuthOption<"optional"> & { readonly baseURL?: string } | |
| const auth = (options: ProviderAuthOption<"optional">) => { | |
| if ("auth" in options && options.auth) return options.auth | |
| return Auth.optional("apiKey" in options ? options.apiKey : undefined, "apiKey") | |
| .orElse(Auth.config("ANTHROPIC_API_KEY")) | |
| .pipe(Auth.header("x-api-key")) | |
| } | |
| const configuredRoute = (input: Config) => { | |
| const { apiKey: _, auth: _auth, baseURL, ...rest } = input | |
| return AnthropicMessages.route.with({ ...rest, endpoint: { baseURL }, auth: auth(input) }) | |
| } | |
| export const configure = (input: Config = {}) => { | |
| const route = configuredRoute(input) | |
| return { | |
| id, | |
| model: (modelID: string | ModelID) => route.model({ id: modelID }), | |
| configure, | |
| } | |
| } | |
| export const provider = configure() | |
| export const model = provider.model | |
Xet Storage Details
- Size:
- 1.25 kB
- Xet hash:
- 78681de1105a7e8d24086f29c8f0306680d8307b27d8480d75cd962b854580a8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.