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
。