nanogpt-client
Version:
Client for the NanoGPT API
188 lines (179 loc) • 4.44 kB
text/typescript
// This file is auto-generated by @hey-api/openapi-ts
import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch'
import type {
CreateChatCompletionData,
CreateChatCompletionResponse,
CreateChatCompletionError,
GenerateImageData,
GenerateImageResponse,
GenerateImageError,
ModelsData,
ModelsResponse,
ModelsError,
BalanceData,
BalanceResponse,
BalanceError,
GenerateVideoData,
GenerateVideoResponse,
GenerateVideoError,
CheckVideoStatusData,
CheckVideoStatusResponse,
CheckVideoStatusError
} from './types.gen.js'
import { client as _heyApiClient } from './client.gen.js'
export type Options<
TData extends TDataShape = TDataShape,
ThrowOnError extends boolean = boolean
> = ClientOptions<TData, ThrowOnError> & {
/**
* You can provide a client instance returned by `createClient()` instead of
* individual options. This might be also useful if you want to implement a
* custom client.
*/
client?: Client
/**
* You can pass arbitrary values through the `meta` object. This can be
* used to access values that aren't defined as part of the SDK function.
*/
meta?: Record<string, unknown>
}
/**
* Create a chat completion
* Generate a chat-based completion using the specified parameters.
*/
export const createChatCompletion = <ThrowOnError extends boolean = false>(
options: Options<CreateChatCompletionData, ThrowOnError>
) => {
return (options.client ?? _heyApiClient).post<
CreateChatCompletionResponse,
CreateChatCompletionError,
ThrowOnError
>({
security: [
{
scheme: 'bearer',
type: 'http'
},
{
name: 'x-api-key',
type: 'apiKey'
}
],
url: '/v1/chat/completions',
...options,
headers: {
'Content-Type': 'application/json',
...options?.headers
}
})
}
/**
* Generate an image
* Create an image based on the provided prompt and parameters.
*/
export const generateImage = <ThrowOnError extends boolean = false>(
options: Options<GenerateImageData, ThrowOnError>
) => {
return (options.client ?? _heyApiClient).post<
GenerateImageResponse,
GenerateImageError,
ThrowOnError
>({
security: [
{
name: 'x-api-key',
type: 'apiKey'
}
],
url: '/generate-image',
...options,
headers: {
'Content-Type': 'application/json',
...options?.headers
}
})
}
/**
* Retrieve available models
* Retrieve all available models on the OpenAI models endpoint format
*/
export const models = <ThrowOnError extends boolean = false>(
options?: Options<ModelsData, ThrowOnError>
) => {
return (options?.client ?? _heyApiClient).get<ModelsResponse, ModelsError, ThrowOnError>({
security: [
{
scheme: 'bearer',
type: 'http'
}
],
url: '/v1/models',
...options
})
}
/**
* Check nano balance for account
* Returns balance, receivable and earned for the account
*/
export const balance = <ThrowOnError extends boolean = false>(
options?: Options<BalanceData, ThrowOnError>
) => {
return (options?.client ?? _heyApiClient).post<BalanceResponse, BalanceError, ThrowOnError>({
security: [
{
name: 'x-api-key',
type: 'apiKey'
}
],
url: '/check-nano-balance',
...options
})
}
/**
* Generate a video
* Create a video based on the provided prompt or script and parameters
*/
export const generateVideo = <ThrowOnError extends boolean = false>(
options: Options<GenerateVideoData, ThrowOnError>
) => {
return (options.client ?? _heyApiClient).post<
GenerateVideoResponse,
GenerateVideoError,
ThrowOnError
>({
security: [
{
name: 'x-api-key',
type: 'apiKey'
}
],
url: '/v1/video',
...options,
headers: {
'Content-Type': 'application/json',
...options?.headers
}
})
}
/**
* Check video generation status
* Check the status of a previously initiated video generation request
*/
export const checkVideoStatus = <ThrowOnError extends boolean = false>(
options: Options<CheckVideoStatusData, ThrowOnError>
) => {
return (options.client ?? _heyApiClient).get<
CheckVideoStatusResponse,
CheckVideoStatusError,
ThrowOnError
>({
security: [
{
name: 'x-api-key',
type: 'apiKey'
}
],
url: '/v1/video/status',
...options
})
}