Spaces:
Build error
Build error
| // File generated from our OpenAPI spec by Stainless. | |
| import * as Core from './core'; | |
| import * as Errors from './error'; | |
| import { type Agent } from './_shims/index'; | |
| import * as Uploads from './uploads'; | |
| import * as API from "./pic-ai/sdk/resources/index"; | |
| export interface ClientOptions { | |
| /** | |
| * Defaults to process.env['ANTHROPIC_API_KEY']. | |
| */ | |
| apiKey?: string | null; | |
| /** | |
| * Defaults to process.env['ANTHROPIC_AUTH_TOKEN']. | |
| */ | |
| authToken?: string | null; | |
| /** | |
| * Override the default base URL for the API, e.g., "https://api.example.com/v2/" | |
| */ | |
| baseURL?: string; | |
| /** | |
| * The maximum amount of time (in milliseconds) that the client should wait for a response | |
| * from the server before timing out a single request. | |
| * | |
| * Note that request timeouts are retried by default, so in a worst-case scenario you may wait | |
| * much longer than this timeout before the promise succeeds or fails. | |
| */ | |
| timeout?: number; | |
| /** | |
| * An HTTP agent used to manage HTTP(S) connections. | |
| * | |
| * If not provided, an agent will be constructed by default in the Node.js environment, | |
| * otherwise no agent is used. | |
| */ | |
| httpAgent?: Agent; | |
| /** | |
| * Specify a custom `fetch` function implementation. | |
| * | |
| * If not provided, we use `node-fetch` on Node.js and otherwise expect that `fetch` is | |
| * defined globally. | |
| */ | |
| fetch?: Core.Fetch | undefined; | |
| /** | |
| * The maximum number of times that the client will retry a request in case of a | |
| * temporary failure, like a network error or a 5XX error from the server. | |
| * | |
| * @default 2 | |
| */ | |
| maxRetries?: number; | |
| /** | |
| * Default headers to include with every request to the API. | |
| * | |
| * These can be removed in individual requests by explicitly setting the | |
| * header to `undefined` or `null` in request options. | |
| */ | |
| defaultHeaders?: Core.Headers; | |
| /** | |
| * Default query parameters to include with every request to the API. | |
| * | |
| * These can be removed in individual requests by explicitly setting the | |
| * param to `undefined` in request options. | |
| */ | |
| defaultQuery?: Core.DefaultQuery; | |
| } | |
| /** API Client for interfacing with the Anthropic API. */ | |
| export class Anthropic extends Core.APIClient { | |
| apiKey: string | null; | |
| authToken: string | null; | |
| private _options: ClientOptions; | |
| /** | |
| * API Client for interfacing with the Anthropic API. | |
| * | |
| * @param {string | null} [opts.apiKey==process.env['ANTHROPIC_API_KEY'] ?? null] | |
| * @param {string | null} [opts.authToken==process.env['ANTHROPIC_AUTH_TOKEN'] ?? null] | |
| * @param {string} [opts.baseURL] - Override the default base URL for the API. | |
| * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out. | |
| * @param {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections. | |
| * @param {Core.Fetch} [opts.fetch] - Specify a custom `fetch` function implementation. | |
| * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request. | |
| * @param {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API. | |
| * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API. | |
| */ | |
| constructor({ | |
| apiKey = Core.readEnv('ANTHROPIC_API_KEY') ?? null, | |
| authToken = Core.readEnv('ANTHROPIC_AUTH_TOKEN') ?? null, | |
| ...opts | |
| }: ClientOptions = {}) { | |
| const options: ClientOptions = { | |
| apiKey, | |
| authToken, | |
| ...opts, | |
| baseURL: opts.baseURL ?? `https://api.anthropic.com`, | |
| }; | |
| super({ | |
| baseURL: options.baseURL!, | |
| timeout: options.timeout ?? 600000 /* 10 minutes */, | |
| httpAgent: options.httpAgent, | |
| maxRetries: options.maxRetries, | |
| fetch: options.fetch, | |
| }); | |
| this._options = options; | |
| this.apiKey = apiKey; | |
| this.authToken = authToken; | |
| } | |
| completions: API.Completions = new API.Completions(this); | |
| protected override defaultQuery(): Core.DefaultQuery | undefined { | |
| return this._options.defaultQuery; | |
| } | |
| protected override defaultHeaders(opts: Core.FinalRequestOptions): Core.Headers { | |
| return { | |
| ...super.defaultHeaders(opts), | |
| 'anthropic-version': '2023-06-01', | |
| ...this._options.defaultHeaders, | |
| }; | |
| } | |
| protected override validateHeaders(headers: Core.Headers, customHeaders: Core.Headers) { | |
| if (this.apiKey && headers['X-Api-Key']) { | |
| return; | |
| } | |
| if (customHeaders['X-Api-Key'] === null) { | |
| return; | |
| } | |
| if (this.authToken && headers['Authorization']) { | |
| return; | |
| } | |
| if (customHeaders['Authorization'] === null) { | |
| return; | |
| } | |
| throw new Error( | |
| 'Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted', | |
| ); | |
| } | |
| protected override authHeaders(opts: Core.FinalRequestOptions): Core.Headers { | |
| const apiKeyAuth = this.apiKeyAuth(opts); | |
| const bearerAuth = this.bearerAuth(opts); | |
| if (apiKeyAuth != null && !Core.isEmptyObj(apiKeyAuth)) { | |
| return apiKeyAuth; | |
| } | |
| if (bearerAuth != null && !Core.isEmptyObj(bearerAuth)) { | |
| return bearerAuth; | |
| } | |
| return {}; | |
| } | |
| protected apiKeyAuth(opts: Core.FinalRequestOptions): Core.Headers { | |
| if (this.apiKey == null) { | |
| return {}; | |
| } | |
| return { 'X-Api-Key': this.apiKey }; | |
| } | |
| protected bearerAuth(opts: Core.FinalRequestOptions): Core.Headers { | |
| if (this.authToken == null) { | |
| return {}; | |
| } | |
| return { Authorization: `Bearer ${this.authToken}` }; | |
| } | |
| static Anthropic = this; | |
| static HUMAN_PROMPT = '\n\nHuman:'; | |
| static AI_PROMPT = '\n\nAssistant:'; | |
| static AnthropicError = Errors.AnthropicError; | |
| static APIError = Errors.APIError; | |
| static APIConnectionError = Errors.APIConnectionError; | |
| static APIConnectionTimeoutError = Errors.APIConnectionTimeoutError; | |
| static APIUserAbortError = Errors.APIUserAbortError; | |
| static NotFoundError = Errors.NotFoundError; | |
| static ConflictError = Errors.ConflictError; | |
| static RateLimitError = Errors.RateLimitError; | |
| static BadRequestError = Errors.BadRequestError; | |
| static AuthenticationError = Errors.AuthenticationError; | |
| static InternalServerError = Errors.InternalServerError; | |
| static PermissionDeniedError = Errors.PermissionDeniedError; | |
| static UnprocessableEntityError = Errors.UnprocessableEntityError; | |
| } | |
| export const { HUMAN_PROMPT, AI_PROMPT } = Anthropic; | |
| export const { | |
| AnthropicError, | |
| APIError, | |
| APIConnectionError, | |
| APIConnectionTimeoutError, | |
| APIUserAbortError, | |
| NotFoundError, | |
| ConflictError, | |
| RateLimitError, | |
| BadRequestError, | |
| AuthenticationError, | |
| InternalServerError, | |
| PermissionDeniedError, | |
| UnprocessableEntityError, | |
| } = Errors; | |
| export import toFile = Uploads.toFile; | |
| export import fileFromPath = Uploads.fileFromPath; | |
| export namespace Anthropic { | |
| // Helper functions | |
| export import toFile = Uploads.toFile; | |
| export import fileFromPath = Uploads.fileFromPath; | |
| export import RequestOptions = Core.RequestOptions; | |
| export import Completions = API.Completions; | |
| export import Completion = API.Completion; | |
| export import CompletionCreateParams = API.CompletionCreateParams; | |
| export import CompletionCreateParamsNonStreaming = API.CompletionCreateParamsNonStreaming; | |
| export import CompletionCreateParamsStreaming = API.CompletionCreateParamsStreaming; | |
| } | |
| export default Anthropic; | |