Poyro是用于测试LLM应用程序的Vitest(具有开玩笑的API的现代测试框架)的轻量级扩展。熟悉vitest可以帮助您从Poyro中获得更多。
Poyro遵循使用LLM来评估应用程序LLM的输出的最佳实践。 Poyro将自然语言条件转换为二元单元测试。默认情况下,单元测试应是免费的,默认情况下应为开源,其中包括AI应用程序 - 因此,我们使用本地运行的小型LLM来评估您的应用程序的输出。
有关为什么使用poyro和有关如何将其与vitest一起用于单元测试LLM应用程序的更多示例有关的更多背景,请阅读我们的论文:
AI测试是全栈工程的一部分
如何为您的AI Web应用程序编写单元测试
案例研究 - 单位测试法律AI应用程序
本文可运行的代码示例
Node.js 20或以后
vitest 1.6.0或更高版本
您的项目必须在其package.json中具有“类型”:“模块”(此库仅是ESM)
推荐:与CUDA兼容的GPU(NVIDIA)或兼容金属兼容GPU(苹果硅)以获得最佳性能,但不需要
为了快速开始,只需运行:
npx poyro init
要使用匹配器,请在项目中的任何地方使用Extension .test.ts
创建一个文件。这是一个示例:
// myfirsttest.test.tsimport {descrip,preecing,it it}从“ vitest”; describe(“ myfirsttest”,()=> { 它(“应该是真实的”,async()=> {//用LLM App的outputconconst llmoutput =“ Hello,world!”; //自然语言中的标准:true或falseawait Expect(llmoutput).tofulfillfillcriterion(true of forseawait)打招呼”); },10000); //通过第三个参数根据需要增加超时});
toFulfillCriterion
可以确定LLM输出是否符合或不符合自然语言标准。
您第一次像上面的测试一样,将下载我们本地运行llm的模型文件。应该花几分钟。
与您的软件包管理器一起运行vitest,例如使用npm
:
NPM测试
类似命令与yarn
和pnpm
一起使用。
我们在故障排除页面中为常见问题提供解决方案。看看那里的解决方案,如果您继续遇到问题,请随时与我们联系。
您可以通过转到我们的GitHub存储库并创建新问题来提交问题。在提交问题之前,请检查是否已经提交了类似的问题。
如果您想获得帮助,在良好的evals上集思广益,或者只想与其他Poyro开发人员聊天,请以不和谐的方式加入我们的社区!
如果您想为Poyro做出贡献,请阅读我们的贡献指南。
首先要克隆存储库:
git克隆https://github.com/poyro/poyro.git
接下来,安装所有依赖项:
PNPM安装
开发时,您可以在根部运行pnpm dev
,在进行更改时,它将自动构建所有相关软件包,也可以在正在使用的软件包中运行pnpm dev
。