LLM Flow是一種旨在促進AI開發過程的Web工具,始於定義孤立的AI用例(AI功能),實現提示,評估和改善及時質量,並生成API以將AI功能集成到您自己的應用程序中。
探索功能»
(返回到頂部)
(返回到頂部)
該項目分為三個服務,所有服務都必須單獨設置:
server :FastApi後端promptfoo-server :express.js後端運行promptfooclient :Next.js Frontend(返回到頂部)
如果您只想在不大量努力的情況下運行該應用程序,請使用Docker設置。對於本地開發,請參閱本地設置。
先決條件:
如何設置:
對於server和client ,通過複製和重命名.env.docker.template文件,在其各自的根文件夾中創建.env.docker文件。對於promptfoo-server從.env.template文件創建.env文件。用自己的模板中的秘密替換。
在根文件夾中運行這兩個命令:
docker compose build
docker compose up -d
client :http:// localhost:3000/backend :http:// localhost:4000/docs(返回到頂部)
先決條件:
您也可以使用不同的節點版本。但是,我僅使用節點22測試了設置。
如何設置:
對於所有三個服務,通過複製和重命名.env.template文件,在其各自的根文件夾中創建.env文件。用自己的模板中的秘密替換。
在根文件夾中運行:
docker compose up mongo -d
backend要運行backend ,您可以使用VS代碼調試器啟動它或在backend文件夾中運行以下內容:
pipenv install
pipenv run python3.12 wsgi.py
promptfoo-server在promptfoo-server文件夾中運行:
npm install
npm run start
client :在client文件夾中運行:
npm install
npm run dev
client :http:// localhost:3000/backend :http:// localhost:4000/docs(返回到頂部)
如果要開發項目,請確保首先通過本地設置運行。
先決條件:
以下是開發過程中使用的一些有用命令:
pre-commit run --all-files
sh generate_client_bindings.sh
在client文件夾中運行:
npm run lint
npm run pretty
(返回到頂部)
AI功能代表您自己的業務邏輯和LLM提供商之間的合同。您將一組參數傳遞給它們,然後返回結構化輸出。
在Web界面中,您可以定義AI函數。您定義其名稱,給它描述,定義其接受的參數,然後選擇可能使用的提供商:
您還定義該函數是否返回一個簡單的非結構化字符串響應或結構化的JSON響應。對於後者,您可以使用JSON模式編輯器來定義復雜的JSON對象。
為了評估AI函數提示的質量,您可以定義斷言和測試用例。主張用於與期望值或條件進行比較。此功能在引擎蓋下使用Promptfoo。從簡單的比較到復雜的正則模式,甚至使用自定義的python或JavaScript代碼,可以選擇各種斷言類型,範圍從簡單的比較到復雜的正則模式。
測試用例請參閱AI函數參數的示例數據。他們在主張及時質量方面發揮了不可或缺的作用。定義提示後,對其在AI函數中定義的斷言的測試用例進行評估。您還可以定義僅應用於單個測試案例的斷言。 AI的功能甚至具有基於先前定義的測試用例以及AI函數的名稱和描述生成測試用例。
首先,您可以簡單地從提供的一個示例中創建AI函數:
(返回到頂部)
在LLM流中,提示是在AI函數的上下文中定義的。它們必須在其體內包含各個AI功能的參數,並根據其測試案例和斷言進行評估。
評估AI函數下指定的每個提供商的提示。這允許比較不同提供商的提示質量。在評估期間計算了三個指標:
(返回到頂部)
項目是創建API的一種方法,您可以調用各種AI功能。在Web界面中,為每個項目生成了自定義Swagger文檔,您可以使用該文檔來測試客戶端本身中的API。您還可以導出OpenAPI規範,以使用OpenAPI-Generator等代碼生成器生成自己的客戶端綁定。
API文檔會自動填充所選AI功能的名稱,描述和參數,並將定義的測試用例之一作為示例。項目中的每個AI函數都分配了自己的端點。
這樣,您可以在自己的應用程序中集成LLM流中定義的AI功能。創建項目後,您不一定需要運行客戶端來調用其端點。這是有關如何創建和使用項目的演示:
(返回到頂部)
如果您有一個可以使情況變得更好的建議,請分配存儲庫並創建拉動請求。您也可以簡單地使用標籤“增強”打開問題。別忘了給項目一個明星!再次感謝!
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )(返回到頂部)
根據MIT許可分發。有關更多信息,請參見LICENSE.txt 。
(返回到頂部)
Amir Mohammad [email protected]
項目鏈接:https://github.com/amir-mo1999/llmflow
(返回到頂部)