项目介绍:openai-clojure
openai-clojure 是一个非官方的 Clojure 库,专为使用 OpenAI 和 Azure OpenAI API 而设计。它的主要目标是简化这两种 API 之间的小差异,使开发者能够构建可同时兼容两者的工具和应用程序。
文档
openai-clojure 提供了一系列文档,帮助用户快速上手并深入了解不同场景下的使用方式,如 OpenAI 的用法、Azure OpenAI 的用法以及流式令牌等。此外,还可以通过查看 API 参考文档掌握所有相关接口的详细信息。
支持的 API
openai-clojure 支持以下两种平台的 API:
- **OpenAI 和 Azure OpenAI 均支持:**聊天、音频、完成、嵌入、图像等。
- **仅 OpenAI 支持:**模型管理、文件管理、精调、审核、助手(测试版)、线程(测试版)、消息(测试版)、运行(测试版)、向量存储(测试版)。
配置指南
为了使用 openai-clojure,首先需要在 Clojure 项目中添加对应的依赖。用户可以通过 deps.edn
或 Leiningen project.clj
文件添加所需的库版本,具体格式如下:
net.clojars.wkok/openai-clojure {:mvn/version "0.22.0"}
或
[net.clojars.wkok/openai-clojure "0.22.0"]
Java 兼容
该库需要至少 Java 11 才能运行。
身份验证
对于 OpenAI 平台,开发者需要在环境变量 OPENAI_API_KEY
中设置 API 密钥。此外,如果账户使用了多个组织,还可以通过设置 OPENAI_ORGANIZATION
环境变量来指定特定组织。若使用 Azure OpenAI,则需参考 Azure OpenAI 的认证文档。
快速开始
要开始使用 openai-clojure 的 API,可以在项目中引用 wkok.openai-clojure.api
命名空间。以下是一个简单的使用 ChatGPT 执行对话的示例:
(api/create-chat-completion {:model "gpt-3.5-turbo"
:messages [{:role "system" :content "You are a helpful assistant."}
{:role "user" :content "Who won the world series in 2020?"}
{:role "assistant" :content "The Los Angeles Dodgers won the World Series in 2020."}
{:role "user" :content "Where was it played?"}]})
这段代码会产生一个交谈结果,响应内容为:
{:id "chatcmpl-6srOKLabYTpTRwRUQxjkcBxw3uf1H",
:object "chat.completion",
:created 1678532968,
:model "gpt-3.5-turbo-0301",
:usage {:prompt_tokens 56, :completion_tokens 19, :total_tokens 75},
:choices
[{:message
{:role "assistant",
:content
"The 2020 World Series was played at Globe Life Field in Arlington, Texas."},
:finish_reason "stop",
:index 0}]}
问题与功能
用户可以在 GitHub 上提交问题或发送拉取请求,以帮助改进 openai-clojure 库。
致谢
该库使用了 Martian,这是一种用于抽象 HTTP 的库。
授权
openai-clojure 是非官方库,OpenAI 既未认可也未授权使用。它遵循 MIT 许可证,这意味着用户可以在遵循规定的情况下自由使用、修改和分发这个库。版权归 Werner Kok 所有。软件按“现状”提供,无任何形式的保证。