LLM Flow es una herramienta web diseñada para facilitar el proceso de desarrollo de IA, comenzando a definir los casos de uso de IA aislados (funciones de IA), implementar indicaciones, evaluar y mejorar la calidad de inmediato y generar API para integrar la funcionalidad de IA en sus propias aplicaciones.
Explore las características »
(De vuelta a la cima)
(De vuelta a la cima)
El proyecto se divide en tres servicios que deben configurarse individualmente:
server : Fastapi Backendpromptfoo-server : express.js backend que ejecuta promptfooclient : next.js frontend(De vuelta a la cima)
Use la configuración de Docker si simplemente desea ejecutar la aplicación sin mucho esfuerzo. Para el desarrollo local, consulte la configuración local.
Prerrequisitos:
Cómo configurar:
Para el server y client crean un archivo .env.docker en sus respectivas carpetas raíz copiando y renombrando el archivo .env.docker.template . Para el promptfoo-server cree un archivo .env desde el archivo .env.template . Reemplace los secretos de las plantillas con las suyas.
En la carpeta raíz ejecuta estos dos comandos:
docker compose build
docker compose up -d
client : http: // localhost: 3000/backend : http: // localhost: 4000/documentos(De vuelta a la cima)
Prerrequisitos:
También puede usar una versión de nodo diferente. Sin embargo, solo probé la configuración usando el nodo 22.
Cómo configurar:
Para los tres servicios, cree un archivo .env en sus respectivas carpetas raíz copiando y renombrando el archivo .env.template . Reemplace los secretos en las plantillas con las suyas.
En la carpeta raíz ejecutando:
docker compose up mongo -d
backend Para ejecutar el backend , puede usar el depurador VS Code para iniciarlo o ejecutar lo siguiente en la carpeta backend :
pipenv install
pipenv run python3.12 wsgi.py
promptfoo-server En la carpeta promptfoo-server ejecución:
npm install
npm run start
client : En la carpeta client ejecutar:
npm install
npm run dev
client : http: // localhost: 3000/backend : http: // localhost: 4000/documentos(De vuelta a la cima)
Si desea desarrollar el proyecto, asegúrese de ejecutar primero la configuración local.
Prerrequisitos:
Aquí hay algunos comandos útiles para usar durante el desarrollo:
pre-commit run --all-files
sh generate_client_bindings.sh
En la carpeta client ejecutar:
npm run lint
npm run pretty
(De vuelta a la cima)
Las funciones de IA representan contratos entre su propia lógica comercial y un proveedor de LLM. Les pasa un conjunto de parámetros y devuelven una salida estructurada.
En la interfaz web puede definir una función AI. Defina su nombre, le da una descripción, defina los parámetros que acepta y selecciona los proveedores que puede usar:
También define si la función devuelve una respuesta de cadena no estructurada simple o una respuesta JSON estructurada. Para este último, puede definir objetos JSON complejos utilizando un editor de esquema JSON.
En aras de evaluar la calidad de las indicaciones de una función de IA, puede definir afirmaciones y casos de prueba. Las afirmaciones se utilizan para comparar con los valores o condiciones esperados. Esta característica usa PromptFoo debajo del capó. Hay varios tipos de afirmación para elegir, que van desde comparaciones simples, hasta patrones regexuales complejos e incluso los que usan el código de pitón o javascript autofinido, que pueden definir lógicas de afirmación personalizadas y potencialmente complejas.
Los casos de prueba se refieren a datos de ejemplo para los parámetros de una función AI. Desempeñan un papel integral en afirmar la calidad rápida. Después de definir un aviso, se evalúa con los casos de prueba con las afirmaciones definidas dentro de la función AI. También puede definir afirmaciones que solo se aplican a un solo caso de prueba. Incluso hay una característica para generar casos de prueba basados en los casos de prueba definidos previamente, así como el nombre y la descripción de la función AI.
Para un inicio, simplemente puede crear una función AI a partir de uno de los ejemplos proporcionados:
(De vuelta a la cima)
En LLM, las indicaciones de flujo se definen en el contexto de las funciones de IA. Deben incluir los parámetros de la función de IA respectiva en su cuerpo y se evalúan con los casos y afirmaciones de su prueba.
Se evalúan las indicaciones para cada proveedor especificado en la función AI. Esto permite comparar la calidad de un aviso con los diferentes proveedores. Se calculan tres métricas durante la evaluación:
(De vuelta a la cima)
Los proyectos son una forma de crear una API a través del cual puede llamar a varias funciones de IA. En la interfaz web se genera un documento de swagger personalizado para cada proyecto que puede usar para probar la API en el mismo cliente. También puede exportar la especificación de OpenAPI para generar su propio enlace de cliente utilizando generadores de código como OpenApi Generator.
Los documentos API se poblan automáticamente con el nombre, la descripción y los parámetros de las funciones de IA seleccionadas e incluyen uno de los casos de prueba definidos como ejemplo. A cada función AI dentro del proyecto se le asigna su propio punto final.
De esta manera, puede integrar las funciones de IA definidas en el flujo LLM en sus propias aplicaciones. Una vez que se crea un proyecto, no necesariamente necesita ejecutar el cliente para llamar a sus puntos finales. Aquí está la demostración sobre cómo crear y usar proyectos:
(De vuelta a la cima)
Si tiene una sugerencia que lo mejore, desembolse el repositorio y cree una solicitud de extracción. También puede simplemente abrir un problema con la etiqueta "Mejora". ¡No olvides darle una estrella al proyecto! ¡Gracias de nuevo!
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )(De vuelta a la cima)
Distribuido bajo la licencia MIT. Consulte LICENSE.txt para obtener más información.
(De vuelta a la cima)
Amir Mohammad - [email protected]
Enlace del proyecto: https://github.com/amir-mo1999/llmflow
(De vuelta a la cima)