Actualización (noviembre de 2023): se prefiere la nueva versión GPT-3.5-Turbo. Agregué una nueva versión que admite la API de finalización de chat (probada con GPT-3.5-Turbo). Las subcarpetas apropiadas ( gpt-3
, gpt-35-turbo
) ahora contienen la versión original y la nueva. Aparte del cambio de modelo y los ajustes correspondientes, son iguales, pero se prefiere gpt-35-turbo
, porque la finalización de GPT-3 está en desuso.
Braindump es una aplicación prototipo para tomar notas y convertirlas en una base de datos que se puede consultar más fácilmente. Simplemente escriba lo que tiene en mente y la aplicación lo clasificará, dividirá y almacenará adecuadamente para su uso posterior. Se creó como una demostración para mostrar cómo aprovechar GPT-3 para crear aplicaciones a partir de pruebas de concepto, como se describe en mi tutorial de Data Science @ Microsoft, "Creación de aplicaciones GPT-3, más allá del mensaje". Puede usarlo tanto para seguir el tutorial como como punto de partida para sus propios estudios y aplicaciones (por ejemplo, reutilizando las funciones de utilidad y las estructuras generales del programa en sus propios problemas diferentes).
Es una aplicación Python simple que aprovecha Streamlit para proporcionar una interfaz web. Para llamar realmente al modelo GPT-3, debe tener una clave API de OpenAI que funcione. Al momento de escribir este artículo, una vez que crea su cuenta, obtiene algunos créditos gratuitos que deberían ser suficientes para seguir el tutorial y comenzar con la aplicación. La aplicación también debería funcionar con el servicio Azure OpenAI en lugar de la oferta original de OpenAI, aunque todavía no la he probado allí.
Además de la aplicación en sí, este repositorio incluye los estudios, en forma de cuadernos Jupyter, que condujeron a ella.
La interfaz de usuario para realizar búsquedas tiene este aspecto:
Para agregar datos, la interfaz de usuario es la siguiente, incluida una inspección manual opcional de la interpretación del modelo:
La aplicación ha sido probada en Python 3.8 (GPT-3) y 3.10 (GPT-3.5-Turbo). Las principales bibliotecas que necesitará son: openai
, streamlit
, pandas
, notebook
, pytest
. Puede instalarlos manualmente o seguir el procedimiento a continuación para crear un nuevo entorno e instalarlos automáticamente. Tenga en cuenta que para el código base anterior necesitará una versión anterior de la biblioteca openai
.
Para ejecutar la aplicación:
conda create -n braindump_py310 python=3.10
conda activate braindump_py310
requirements.txt
. Puedes hacer esto ejecutando pip install -r requirements.txt
desde la raíz del proyecto. Para la versión original de GPT-3 (en desuso), utilice requirements.gpt3.txt
en su lugar, para obtener las dependencias más antiguas necesarias para su funcionamiento.OPENAI_API_KEY
.run.gpt3.bat
(versión GPT-3) o run.gpt35turbo.bat
(versión GPT-3.5-Turbo); en Linux: run.gpt3.sh
(versión GPT-3) o run.gpt35turbo.sh
(versión GPT-3.5-Turbo).Para ejecutar los estudios:
notebooks/
con su cliente Jupyter favorito (personalmente, uso mucho VS Code para eso). El proyecto se estructura de la siguiente manera:
notebooks/
: Cuadernos Jupyter utilizados para ingeniería rápida.src/
: código fuente de la aplicación final.src/gpt-3
: fuentes de la versión original de GPT-3 (obsoleta).src/gpt-3.5-turbo
: fuentes para la versión GPT-3.5-Turbo ( recomendada desde noviembre de 2023).data/
: datos almacenados por la aplicación.tests/
: pruebas unitarias para la aplicación.tests/gpt-3/
: pruebas para la versión original de GPT-3 (obsoleta).tests/gpt-3.5-turbo/
: pruebas para la versión GPT-3.5-Turbo ( recomendada desde noviembre de 2023).docs/
: documentación y activos relacionados. El enfoque se presenta en detalle en mi tutorial de Data Science @ Microsoft, "Creación de aplicaciones GPT-3, más allá del mensaje". Sin embargo, permítanme resaltar aquí algunos puntos clave:
En cuanto a fases concretas, se aconseja lo siguiente
Licencia MIT
Copyright (c) 2023 Paulo Salem da Silva
Por el presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión. , publicar, distribuir, sublicenciar y/o vender copias del Software, y permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGÚN RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS NEGOCIOS EN EL SOFTWARE.