开源 playground 让程序员在离线环境测试和开发 LLM 应用,降低开发门槛和成本。
使用来自 OpenAI、Anthropic、Cohere、Forefront、HuggingFace、Aleph Alpha、Replicate、Banana 和 llama.cpp 的任何模型。
完整的 playground UI,包括历史记录、参数调整、键盘快捷键和 logprops。
用相同的 prompt 并排比较模型,单独调整模型参数,并使用不同的参数重试。
自动检测 HuggingFace 缓存中的本地模型,并让您安装新模型。
在手机上也能用。
可能不会杀死所有人。
尝试托管版本:nat.dev。
pip install openplayground
openplayground run
或者,将其作为 docker 容器运行:
docker run --name openplayground -p 5432:5432 -d --volume openplayground:/web/config natorg/openplayground
这会运行一个 Flask 进程,所以您可以添加典型的标志,例如设置不同的端口 openplayground run -p 1235 等。
git clone https://github.com/nat/openplayground
cd app && npm install && npx parcel watch src/index.html --no-cache
cd server && pip3 install -r requirements.txt && cd .. && python3 -m server.app
docker build . --tag "openplayground"
docker run --name openplayground -p 5432:5432 -d --volume openplayground:/web/config openplayground
第一个 volume 是可选的。它用于存储 API 密钥和模型设置。
向 playground 添加 token 计数器
向 playground 和比较页面添加成本计数器
测量并显示首个 token 的时间
使用 GitHub Actions 设置自动构建
每个模型的默认参数在 server/models.json 文件中配置。如果您为某个模型找到了更好的默认参数,请提交拉取请求!
有人可以帮助我们制作一个 homebrew 包和一个 dockerfile
更简单的方式来直接从 openplayground 安装开源模型,使用 openplayground install <model> 或在 UI 中
ChatGPT UI,具有逐轮对话、markdown 渲染、ChatGPT 插件支持等
我们在 2023 年的某个时候可能需要多模态输入和输出
openplayground 中的模型和提供者有三种类型:
您可以在 server/models.json 中使用以下 schema 添加模型:
对于在您的设备上本地运行的模型,您可以像以下方式将它们添加到 openplayground(一个最小示例):
"llama": {
"api_key" : false,
"models" : {
"llama-70b": {
"parameters": {
"temperature": {
"value": 0.5,
"range": [
0.1,
1.0
]
},
}
}
}
}
请记住,您需要在 server/app.py 中为您的模型添加一个生成方法。查看 local_text_generation() 作为示例。
这是针对像 OpenAI、Cohere、Forefront 等模型提供者的。您可以轻松地将它们连接到 openplayground(一个最小示例):
"cohere": {
"api_key" : true,
"models" : {
"xlarge": {
"parameters": {
"temperature": {
"value": 0.5,
"range": [
0.1,
1.0
]
},
}
}
}
}
请记住,您需要在 server/app.py 中为您的模型添加一个生成方法。查看 openai_text_generation() 或 cohere_text_generation() 作为示例。
我们将其用于 Huggingface Remote Inference 模型,搜索端点对于在设置页面中扩展到 N 个模型很有用。
"provider_name": {
"api_key": true,
"search": {
"endpoint": "ENDPOINT_URL"
},
"parameters": {
"parameter": {
"value": 1.0,
"range": [
0.1,
1.0
]
},
}
}
由 Nat Friedman 发起。初始实现由 Zain Huda 作为 repl.it 赏金完成。许多功能和广泛的重构由 Alex Lourenco 完成。