openai-clojure(非官方)
用于驱动 OpenAI API 和 Azure OpenAI API 的 Clojure 函数
这个非官方库旨在隐藏这两者 API 之间的一些小差异,从而允许开发出可以同时支持这两种变体的工具和应用程序。
文档
支持的 API
配置
添加 openai-clojure
依赖
deps.edn
net.clojars.wkok/openai-clojure {:mvn/version "0.19.0"}
Leiningen project.clj
[net.clojars.wkok/openai-clojure "0.19.0"]
Java
至少需要 Java 11
认证
OpenAI
API 密钥
将环境变量 OPENAI_API_KEY
设置为你的 OpenAI API 密钥。
(有关传递 API 密钥的其他选项,请参阅 选项)
API 密钥可以在你的 OpenAI 账户 中生成
组织
可选 - 如果你的 OpenAI 账户使用多个组织,请将环境变量 OPENAI_ORGANIZATION
设置为用于你应用程序的那个组织。
Azure OpenAI
快速入门
有关所有支持的 OpenAI API 的示例,请参阅完整的 API 参考。
需要 api
命名空间
(:require [wkok.openai-clojure.api :as api])
与 OpenAI 的 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 上提出问题或发送拉取请求
致谢
该库使用了 Martian - 一个 HTTP 抽象库
许可
这是一个非官方库,未与 OpenAI 有任何关联,也未被 OpenAI 认可
版权所有 (c) 2023 Werner Kok
在符合以下条件下,特此免费授予任何获得本软件副本和相关文档文件(以下简称“软件”)的人使用本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许获得本软件的人在以下条件下这样做:
以上版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“现状”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、适用于特定用途和非侵权的保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易引起的任何索赔、损害或其他责任承担责任,无论是在合同诉讼、侵权行为或其他情况下。