PromptTools:LLM 应用评估和优化工具集
开源工具集,提供 LLM 和向量数据库的测试、评估、性能对比功能,帮助开发者快速调优 AI 应用。
开源工具集,提供 LLM 和向量数据库的测试、评估、性能对比功能,帮助开发者快速调优 AI 应用。
🔧 测试和实验 prompt、LLM 和向量数据库。🔨
欢迎使用由 Hegel AI 创建的 prompttools!这个仓库提供了一套开源、可自托管的工具,用于实验、测试和评估 LLM、向量数据库和 prompt。核心理念是让开发者能够使用他们熟悉的接口(如代码、笔记本和本地 playground)进行评估。
只需几行代码,你就可以在不同模型(无论是使用 OpenAI、Anthropic 还是 LLaMA 模型)上测试你的 prompt 和参数。你甚至可以评估向量数据库的检索准确率。
from prompttools.experiment import OpenAIChatExperiment
messages = [
[{"role": "user", "content": "Tell me a joke."},],
[{"role": "user", "content": "Is 17077 a prime number?"},],
]
models = ["gpt-3.5-turbo", "gpt-4"]
temperatures = [0.0]
openai_experiment = OpenAIChatExperiment(models, messages, temperature=temperatures)
openai_experiment.run()
openai_experiment.visualize()
如果想了解问题和未来更新,可以加入我们的 Discord。
安装 prompttools,你可以使用 pip:
pip install prompttools
你可以本地运行一个简单的 prompttools 示例:
git clone https://github.com/hegelai/prompttools.git
cd prompttools && jupyter notebook examples/notebooks/OpenAIChatExperiment.ipynb
你也可以在 Google Colab 中运行该笔记本。
如果想使用我们的 playground 界面与 prompttools 交互,可以用以下命令启动:
首先确保安装了必要的依赖:
pip install notebook # 如果尚未安装 jupyter notebook
pip install prompttools
然后,克隆 git 仓库并启动 streamlit 应用:
git clone https://github.com/hegelai/prompttools.git
cd prompttools && streamlit run prompttools/playground/playground.py
你也可以访问托管在 Streamlit Community Cloud 上的 playground 版本。
注意:托管版本不支持 LlamaCpp
我们的文档网站包含完整的 API 参考和各个组件的详细描述。请查看!
以下是我们的实验中支持的 API 列表:
OpenAI(Completion、ChatCompletion、Fine-tuned 模型)- 支持
LLaMA.Cpp(LLaMA 1、LLaMA 2)- 支持
HuggingFace(Hub API、Inference Endpoints)- 支持
Anthropic - 支持
Mistral AI - 支持
Google Gemini - 支持
Google PaLM(已弃用)- 支持
Google Vertex AI - 支持
Azure OpenAI Service - 支持
Replicate - 支持
Epsilla - 开发中
LangChain - 支持
LlamaIndex - 探索中
Stable Diffusion - 支持
Replicate 的托管 Stable Diffusion - 支持
如果你希望看到支持其他 API,请提开 issue 或提交 PR。也欢迎在我们的 Discord 频道中讨论。
不会。源代码将在你的机器上执行。所有 LLM API 调用都会直接从你的机器执行,不涉及任何转发。
不会。所有这些数据都留在你的本地机器上。我们不收集任何 PII(个人可识别信息)。
为了持久化你的测试和实验结果,你可以通过 to_csv、to_json、to_lora_json 或 to_mongo_db 方法导出你的 Experiment。我们正在构建更多持久化功能,很乐意进一步讨论你的使用场景、痛点和哪些导出选项对你可能有用。
由于我们的 API 变化很快,有些错误是由于我们的疏忽或过时的文档引起的。为了改进用户体验,我们从正常的包使用中收集数据,帮助我们了解提高的错误。这些数据被收集并发送到 Sentry,这是一个常见的第三方错误跟踪服务,广泛用于开源软件。它仅记录该库本身的操作。
你可以通过定义一个名为 SENTRY_OPT_OUT 的环境变量来轻松退出。
我们欢迎 PR 和建议!请不要犹豫,提交 PR/issue 或通过电子邮件与我们联系。请查看我们的贡献指南和"Help Wanted"问题开始!
我们很乐意与早期采用者合作来完善我们的设计。如果你有兴趣为你的项目使用这个工具或有任何反馈,请通过电子邮件与我们联系。
我们将逐步向开源社区发布更多组件。当前许可证可以在 LICENSE 文件中找到。如有任何问题,请与我们联系,我们很乐意与你合作。