kopia lustrzana https://github.com/transitive-bullshit/chatgpt-api
95 wiersze
1.9 KiB
TypeScript
95 wiersze
1.9 KiB
TypeScript
/**
|
|
* This file was auto-generated from an OpenAPI spec.
|
|
*/
|
|
|
|
import {
|
|
aiFunction,
|
|
AIFunctionsProvider,
|
|
pick,
|
|
sanitizeSearchParams
|
|
} from '@agentic/core'
|
|
import defaultKy, { type KyInstance } from 'ky'
|
|
|
|
import { petstore } from './pet-store'
|
|
|
|
/**
|
|
* Agentic PetStore client.
|
|
*/
|
|
export class PetStoreClient extends AIFunctionsProvider {
|
|
protected readonly ky: KyInstance
|
|
|
|
protected readonly apiBaseUrl: string
|
|
|
|
constructor({
|
|
apiBaseUrl = petstore.apiBaseUrl,
|
|
ky = defaultKy
|
|
}: {
|
|
apiKey?: string
|
|
apiBaseUrl?: string
|
|
ky?: KyInstance
|
|
} = {}) {
|
|
super()
|
|
|
|
this.apiBaseUrl = apiBaseUrl
|
|
|
|
this.ky = ky.extend({
|
|
prefixUrl: apiBaseUrl
|
|
})
|
|
}
|
|
|
|
/**
|
|
* List all pets.
|
|
*/
|
|
@aiFunction({
|
|
name: 'pet_store_list_pets',
|
|
description: `List all pets.`,
|
|
inputSchema: petstore.ListPetsParamsSchema,
|
|
tags: ['pets']
|
|
})
|
|
async listPets(
|
|
params: petstore.ListPetsParams
|
|
): Promise<petstore.ListPetsResponse> {
|
|
return this.ky
|
|
.get('/pets', {
|
|
searchParams: sanitizeSearchParams(params)
|
|
})
|
|
.json<petstore.ListPetsResponse>()
|
|
}
|
|
|
|
/**
|
|
* Create a pet.
|
|
*/
|
|
@aiFunction({
|
|
name: 'pet_store_create_pets',
|
|
description: `Create a pet.`,
|
|
inputSchema: petstore.CreatePetsParamsSchema,
|
|
tags: ['pets']
|
|
})
|
|
async createPets(
|
|
params: petstore.CreatePetsParams
|
|
): Promise<petstore.CreatePetsResponse> {
|
|
return this.ky
|
|
.post('/pets', {
|
|
json: pick(params, 'id', 'name', 'tag')
|
|
})
|
|
.json<petstore.CreatePetsResponse>()
|
|
}
|
|
|
|
/**
|
|
* Info for a specific pet.
|
|
*/
|
|
@aiFunction({
|
|
name: 'pet_store_show_pet_by_id',
|
|
description: `Info for a specific pet.`,
|
|
inputSchema: petstore.ShowPetByIdParamsSchema,
|
|
tags: ['pets']
|
|
})
|
|
async showPetById(
|
|
params: petstore.ShowPetByIdParams
|
|
): Promise<petstore.ShowPetByIdResponse> {
|
|
return this.ky
|
|
.get(`/pets/${params.petId}`)
|
|
.json<petstore.ShowPetByIdResponse>()
|
|
}
|
|
}
|