function-gpt
v2.0.0
Published
A library to simplify the handling of function calling in OpenAI's ChatGPT API.
Downloads
37
Maintainers
Readme
Function-GPT
This is a typescript library that helps handle function calling with OpenAI.
- Uses typescript decorators to provide metadata for function calling
- Automatically generate function calling JSON schema from decorated typescript functions
- Automatically call functions based on name and JSON-formatted arguments
- Can be used with OpenAI's Chat Completion API as well as the Assistants API
Example
import { gptFunction, gptString, FunctionCallingProvider } from 'function-gpt';
// Define the type of the input parameter for functions above.
class BrowseParams {
// Decorate each field with @gptObjectField to provide necessary metadata.
@gptString('url of the web page to browse')
public url!: string;
}
// Create your own class that extends FunctionCallingProvider.
class BrowseProvider extends FunctionCallingProvider {
// Define functions that you want to provide to OpenAI for function calling.
// Decorate each function with @gptFunction to provide necessary metadata.
// The function should accept a single parameter that is a typed object.
@gptFunction('make http request to a url and return its html content', BrowseParams)
async browse(params: BrowseParams) {
const response = await fetch(params.url);
return await response.text();
}
}
const provider = new BrowseProvider();
const schema = await provider.getSchema();
const result = await provider.handleFunctionCall(
'browse',
JSON.stringify({ url: 'https://www.google.com' }),
);
API References
See API references for more detailed information on how to use the library.
Installation
npm install function-gpt --save
# or
yarn add function-gpt
# or
pnpm add function-gpt
Contributing
Contributions are welcome! See CONTRIBUTING.md for more info.