项目介绍
OpenAI-C++库
OpenAI-C++库是一个由社区维护的轻量级现代C++库,旨在为使用C++编写的应用程序提供便捷的OpenAI API访问接口。这个库十分精简,只包含两个头文件(如果你已经在使用Nlohmann Json,则只需要一个头文件)。它允许开发者轻松集成OpenAI的强大功能到他们的项目中。
项目特点
- 语言:C++
- C++标准:支持C++11及更高版本
- 许可证:MIT
- 使用libcurl进行网络请求
系统需求
要使用OpenAI-C++库,你需要确保你的开发环境中有以下组件:
- 支持C++11、C++14、C++17或C++20的编译器
- 已安装libcurl库
当前实现
OpenAI-C++库实现了OpenAI文档中的所有API请求。如果有新的API更新或任何遗漏的部分,用户可以提交issue提出建议。目前支持的功能包括但不限于:
- 列出或检索模型信息
- 创建补全文本
- 创建图像及图像变体
- 管理和上传文件
- 创建fine-tune模型
- 创建聊天会话
- 处理音频转录和翻译
- 生成审查内容
安装步骤
该库由两个文件组成:[include/openai/openai.hpp]和[include/openai/nlohmann/json.hpp]。用户只需将这些文件夹复制到自己的项目中,并在代码中使用#include "openai.hpp"
即可进行调用。
注意:如果有需要,用户可以使用自己的Nlohmann Json副本以加快编译速度。
使用指南
简单示例
在使用库前,需要使用你的账户密钥进行配置。推荐的做法是设置环境变量OPENAI_API_KEY
。例如:
export OPENAI_API_KEY='sk-...'
用户可以参考[examples/00-showcase.cpp]中的例子进行简单体验:
#include "openai.hpp"
#include <iostream>
int main() {
openai::start(); // 使用`OPENAI_API_KEY`环境变量提供的API密钥
auto completion = openai::completion().create(R"({
"model": "text-davinci-003",
"prompt": "Say this is a test",
"max_tokens": 7,
"temperature": 0
})"_json);
std::cout << "Response is:\n" << completion.dump(2) << '\n';
auto image = openai::image().create({
{ "prompt", "A cute koala playing the violin"},
{ "n", 1 },
{ "size", "512x512" }
});
std::cout << "Image URL is: " << image["data"][0]["url"] << '\n';
}
错误处理
默认情况下,如果curl请求失败,OpenAI-CPP会抛出运行时错误异常。用户可以选择自定义异常处理方式,也可以通过设置setThrowException(false)
来避免异常抛出,并显示警告。
一些高级用法
OpenAI-C++库提供了对实现的更大控制权。用户可以使用openai::post()
或openai::get()
方法来全面定制请求。此外,用户可以通过引用传递OpenAI实例以管理多个密钥。
常见问题
在Windows上使用libcurl时可能会遇到一些问题,CMake可能会抛出“Could NOT find CURL”错误。用户可以参考详细的安装步骤来解决这些安装问题。
许可证
OpenAI-C++库使用MIT许可证,用户可以在自由软件的基本条款下使用和修改该库。
致谢
项目灵感主要来自slacking项目和cpr的curl封装代码。
赞助商
由OLREA赞助支持。
以上内容为OpenAI-C++项目的详细介绍,希望能帮助开发者更好地理解和使用此库来增强他们的C++项目功能。