O LLM Flow é uma ferramenta da Web projetada para facilitar o processo de desenvolvimento de IA, começando na definição de casos de uso isolados de IA (funções de IA), implementando prompts, avaliando e melhorando a qualidade imediata e gerando APIs para integrar a funcionalidade de IA em seus próprios aplicativos.
Explore os recursos »
(de volta ao topo)
(de volta ao topo)
O projeto é dividido em três serviços que devem ser configurados individualmente:
server : back -end de fastapipromptfoo-server : Express.js Backend, que executa promptfooclient : Next.js Frontend(de volta ao topo)
Use a configuração do Docker se desejar simplesmente executar o aplicativo sem muito esforço. Para o desenvolvimento local, consulte a configuração local.
Pré -requisitos:
Como configurar:
Para o server e client crie um arquivo .env.docker em suas respectivas pastas root, copiando e renomeando o arquivo .env.docker.template . Para o promptfoo-server crie um arquivo .env a partir do arquivo .env.template . Substitua os segredos dos modelos por seus próprios.
Na pasta raiz, execute esses dois comandos:
docker compose build
docker compose up -d
client : http: // localhost: 3000/backend : http: // localhost: 4000/docs(de volta ao topo)
Pré -requisitos:
Você também pode usar uma versão de nó diferente. No entanto, eu só testei a configuração usando o nó 22.
Como configurar:
Para todos os três serviços, crie um arquivo .env em suas respectivas pastas root, copiando e renomeando o arquivo .env.template . Substitua os segredos nos modelos por seus próprios.
Na pasta raiz, execute:
docker compose up mongo -d
backend Para executar o backend você pode usar o depurador de código VS para iniciá -lo ou executar o seguinte na pasta backend :
pipenv install
pipenv run python3.12 wsgi.py
promptfoo-server Na pasta promptfoo-server Run:
npm install
npm run start
client : Na pasta client , execute:
npm install
npm run dev
client : http: // localhost: 3000/backend : http: // localhost: 4000/docs(de volta ao topo)
Se você deseja desenvolver o projeto, certifique -se de executar primeiro a configuração local.
Pré -requisitos:
Aqui estão alguns comandos úteis a serem usados durante o desenvolvimento:
pre-commit run --all-files
sh generate_client_bindings.sh
Na pasta client , execute:
npm run lint
npm run pretty
(de volta ao topo)
As funções de IA representam contratos entre sua própria lógica de negócios e um provedor LLM. Você passa um conjunto de parâmetros para eles e eles retornam uma saída estruturada.
Na interface da web, você pode definir uma função AI. Você define o nome, dê uma descrição, defina os parâmetros que aceita e seleciona os provedores que ele pode usar:
Você também define se a função retornar uma resposta simples de string não estruturada ou uma resposta JSON estruturada. Para este último, você pode definir objetos JSON complexos usando um editor de esquema JSON.
Para avaliar a qualidade dos avisos de uma função de IA, você pode definir afirmações e casos de teste. As afirmações são usadas para comparar com os valores ou condições esperados. Esse recurso usa o PromptFoo sob o capô. Existem vários tipos de afirmação para escolher, variando de comparações simples, padrões REGEX complexos e até aqueles que usam o código python ou JavaScript auto -definido, que pode definir lógicas de afirmação personalizadas e potencialmente complexas.
Os casos de teste referem -se a dados de exemplo para os parâmetros de uma função de IA. Eles desempenham um papel integral na afirmação da qualidade imediata. Após definir um prompt, ele é avaliado em relação aos casos de teste com as afirmações definidas na função IA. Você também pode definir afirmações que são aplicadas apenas a um único caso de teste. Existe até um recurso para gerar casos de teste com base nos casos de teste definidos anteriormente, bem como no nome e na descrição da função AI.
Para começar, você pode simplesmente criar uma função de IA a partir de um dos exemplos fornecidos:
(de volta ao topo)
No LLM, os avisos de fluxo são definidos no contexto das funções de IA. Eles devem incluir os parâmetros da respectiva função de IA em seu corpo e são avaliados em relação aos casos de teste e afirmações.
Os avisos são avaliados para cada provedor especificado na função AI. Isso permite comparar a qualidade de um prompt em diferentes fornecedores. Três métricas são calculadas durante a avaliação:
(de volta ao topo)
Os projetos são uma maneira de criar uma API através da qual você pode chamar várias funções de IA. Na interface da web, um documento swagger personalizado é gerado para cada projeto que você pode usar para testar a API no próprio cliente. Você também pode exportar a especificação do OpenAPI para gerar suas próprias ligações de clientes usando geradores de código como o OpenApi-Generator.
Os documentos da API são automaticamente preenchidos com o nome, descrição e parâmetros das funções de IA selecionadas e incluem um dos casos de teste definidos como exemplo. Cada função de IA dentro do projeto recebe seu próprio terminal.
Dessa forma, você pode integrar as funções de IA definidas no fluxo LLM em seus próprios aplicativos. Depois que um projeto é criado, você não precisa necessariamente executar o cliente para chamar seus pontos de extremidade. Aqui está uma demonstração sobre como criar e usar projetos:
(de volta ao topo)
Se você tiver uma sugestão que melhoraria isso, bifór -l e crie uma solicitação de tração. Você também pode simplesmente abrir um problema com a tag "aprimoramento". Não se esqueça de dar uma estrela ao projeto! Obrigado novamente!
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )(de volta ao topo)
Distribuído sob a licença do MIT. Consulte LICENSE.txt para obter mais informações.
(de volta ao topo)
Amir Mohammad - [email protected]
Link do projeto: https://github.com/amir-mo1999/llmflow
(de volta ao topo)