OpenAI Function Calling Tools: 简化函数调用的强大工具集
在人工智能和自然语言处理领域,OpenAI的API一直处于领先地位。随着函数调用(Function Calling)功能的引入,OpenAI为开发者提供了更强大、更灵活的工具来构建智能应用。然而,实现这一功能可能会面临一些挑战。为此,GitHub上的"openai-function-calling-tools"项目应运而生,旨在为开发者提供一套完整的工具,简化OpenAI API中函数调用的实现过程。
项目概述
OpenAI Function Calling Tools是一个开源项目,为JavaScript和TypeScript开发者提供了一系列现成的工具,以便快速构建基于OpenAI API的函数调用模型。该项目的核心目标是简化开发流程,使开发者能够更专注于创建创新的AI应用,而不是陷入复杂的API调用细节中。
主要特性
-
丰富的工具集: 项目提供了多种开箱即用的工具,包括:
- 🗺️ ShowPoisOnMap: 在地图上显示兴趣点
- 🌐 ReverseGeocode: 将坐标转换为人类可读的地址
- ⏰ Clock: 显示当前时间
- 🧮 Calculator: 执行基本算术运算
- 🔍 GoogleCustomSearch: Google自定义搜索API的封装
- 🔍 BingCustomSearch: Bing自定义搜索API的封装
- 🔍 SerperCustomSearch: SerpAPI的封装
- 🏞️ SerperImagesSearch: 使用SerpAPI搜索图片
- 📁 fs: 文件系统读写工具
- 🪩 webbrowser: 打开网页的工具
- 🚧 sql: 执行SQL查询
- 🚧 JavaScriptInterpreter: JavaScript解释器
-
易于使用: 开发者可以通过
{ Tool }
工厂函数轻松创建工具实例。 -
快速安装: 使用npm一键安装:
npm install openai-function-calling-tools
-
灵活性: 支持多种环境,包括Node.js、Cloudflare Workers、Vercel/Next.js等。
-
安全可靠: 经过安全审计,适合生产环境使用。
使用示例
以下是一个使用Calculator工具的简单示例:
import { Configuration, OpenAIApi } from "openai";
import { createCalculator } from "openai-function-calling-tools"
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const QUESTION = "What is 100*2?";
const messages = [
{
role: "user",
content: QUESTION,
},
];
// ✨ STEP 1: 创建所需工具
const [calculator, calculatorSchema] = createCalculator();
// ✨ STEP 2: 将工具添加到functions对象
const functions = {
calculator,
};
const getCompletion = async (messages) => {
const response = await openai.createChatCompletion({
model: "gpt-3.5-turbo-0613",
messages,
// ✨ STEP 3: 将工具添加到schema
functions: [calculatorSchema],
temperature: 0,
});
return response;
};
console.log("Question: " + QUESTION);
let response = await getCompletion(messages);
if (response.data.choices[0].finish_reason === "function_call") {
const fnName = response.data.choices[0].message.function_call.name;
const args = response.data.choices[0].message.function_call.arguments;
console.log("Function call: " + fnName);
console.log("Arguments: " + args);
// ✨ STEP 4: 调用函数
const fn = functions[fnName];
const result = fn(JSON.parse(args));
console.log("Calling Function Result: " + result);
// ... 处理结果并继续对话
}
高级用法
除了基本的函数调用,OpenAI Function Calling Tools还支持更复杂的场景,如Google自定义搜索和模式提取。这些高级功能使得开发者能够构建更智能、更强大的AI应用。
支持的环境
项目支持多种运行环境,确保了在不同场景下的灵活使用:
- Node.js v16或更高版本
- Cloudflare Workers
- Vercel / Next.js (后端、无服务器和Edge函数)
- Supabase Edge Functions
- 浏览器环境(开发中)
生产环境安全性
该项目经过安全审计,可以安全地在生产环境中使用。这一点对于需要处理敏感数据或构建关键应用的开发者来说尤为重要。
结论
OpenAI Function Calling Tools为开发者提供了一个强大而灵活的工具集,大大简化了在JavaScript和TypeScript项目中实现OpenAI函数调用的过程。无论是构建简单的计算器应用,还是复杂的搜索和数据处理系统,这个项目都能提供必要的工具和支持。
随着AI技术的不断发展,像OpenAI Function Calling Tools这样的项目将在推动AI应用的普及和创新方面发挥重要作用。它不仅降低了开发门槛,还为开发者提供了探索AI潜力的新途径。
对于那些希望在项目中集成OpenAI API功能,特别是函数调用特性的开发者来说,OpenAI Function Calling Tools无疑是一个值得考虑的选择。它combines了易用性、灵活性和可靠性,为构建下一代AI应用铺平了道路。
参考链接
通过使用OpenAI Function Calling Tools,开发者可以更专注于创新和应用逻辑,而将复杂的API交互留给这个强大的工具集。随着AI技术的不断发展,我们期待看到更多基于这个项目构建的创新应用。