项目介绍
liboai
是一个简单的、非官方的 C++17 库,专为 OpenAI API 设计。它提供了一套简化的方法和类,帮助开发者轻松访问 OpenAI 的端点。这个库可以视作 OpenAI 的 Python 库 openai
的一种精神移植,因为它们的结构非常类似,只有少数例外。
功能特点
- ChatGPT:支持与 ChatGPT 的互动。
- 音频处理:处理与音频相关的任务。
- Azure:集成了 Azure 的支持。
- 函数调用:使用 OpenAI 的 API 创建和调用函数。
- 图像处理(DALL·E):生成和处理图像。
- 模型管理:访问和管理各种 AI 模型。
- 文本完成功能:使用模型进行文本补全。
- 文本编辑功能:对文本进行编辑和调整。
- 嵌入功能:生成并处理文本嵌入。
- 文件管理:处理和管理文件。
- 微调功能:对模型进行细致调整以适应特定任务。
- 内容审核:提供对内容的审核功能。
- 异步支持:支持异步任务执行。
使用方法
以下展示了如何在 Python 和 C++ 中使用 liboai
或相应的 Python 库生成 DALL-E 图像的示例。通过列出的代码片段可以看到,liboai
与 Python 版本在使用风格上的相似之处。
在 Python 中生成 DALL-E 图像
import openai
import os
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Image.create(
prompt="A snake in the grass!",
n=1,
size="256x256"
)
print(response["data"][0]["url"])
在 C++ 中生成 DALL-E 图像
#include "liboai.h"
using namespace liboai;
int main() {
OpenAI oai;
oai.auth.SetKeyEnv("OPENAI_API_KEY");
Response res = oai.Image->create(
"A snake in the grass!",
1,
"256x256"
);
std::cout << res["data"][0]["url"] << std::endl;
}
运行上述代码会输出生成的图像 URL,结果可能类似于以下演示图像。
请注意,上述 C++ 示例是一个最小化例子,未确保异常安全。欲获取更多详细且异常安全的代码示例,请查阅官方文档。
依赖
为了让 liboai
有效运行,它依赖于以下两个主要组件:
nlohmann-json
:用于处理 JSON 数据。cURL
:用于网络请求。
如果使用提供的解决方案构建此库,建议通过 vcpkg 安装这些依赖。
文档
欲了解详细文档和更多代码示例,请参阅库的官方文档。
贡献指南
人工智能是一个令人兴奋且变化迅速的领域。如果您希望在此领域发挥作用,把 AI 的力量交到普通用户手中,欢迎通过提交拉取请求来贡献新代码和功能。如果您在使用库过程中遇到问题,或想要建议新功能,可以直接联系开发者或者在 GitHub 上提出问题。
请注意,所有的拉取请求应定位于 dev 分支,经测试后再合并至 main
分支。