Una base de datos vectorial permite la búsqueda e indexación eficiente de similitud de datos de alta dimensión. Las bases de datos vectoriales son particularmente útiles para aplicaciones de aprendizaje automático, donde los puntos de datos a menudo se representan como vectores de alta dimensión. Estas bases de datos permiten a los usuarios realizar búsquedas de similitud en función de las integridades de los puntos de datos, lo que hace que sea más fácil encontrar información relevante basada en contenido o características.
En este proyecto ejemplar, he utilizado Weaviate como una base de datos vectorial y su integración con el incrustador de OpenAI ( text-embedding-ada-002-v2 ) para crear y guardar vectores de un conjunto de datos. Como ejemplo de conjunto de datos, he raspado todo el combinador Y de su sitio web (más de 4000 compañías) y creé vectores fuera de clave de datos clave (ver /examples/y-combinator/schema.json para más detalles). También he subido el conjunto de datos a Kaggle.
Como segundo ejemplo, he descargado un conjunto de datos de personajes de Lord of the Rings de Kaggle, creado por Paul Mooney.
Cree un archivo .env en el directorio raíz y agregue las variables: OpenAI_apikey y Data_Path. La variable data_path debe ser la ruta al directorio de datos:
OPENAI_APIKEY=XXXXXXXXXXXXXXXXX
DATA_PATH=C:Usersyour-user-namepathtoprojectdata
Para usar este código, deberá instalar las dependencias usando:
npm install
Para usar la base de datos, deberá configurar una instancia de Docker de la base de datos.
docker-compose up -d --build
Uplpe la base de datos tejida (asegúrese de que Docker se esté ejecutando). Puede usar uno de los conjuntos de datos de ejemplo proporcionados en el directorio /examples (actualmente y-combinator y lotr-character ).
Ejecutar populate creará una base de datos tejida con los datos del conjunto de datos de ejemplo (y eliminará los datos existentes con la misma clase). Pagué ~ $ 0.20 en uso de OpenAI para poblar el conjunto de datos de Y Combinator
npm run populate --dataset=<example-name>
Si es exitoso, puede ver y consultar fácilmente sus datos a través de la API Weaviate GraphQL. Puede usar el Apollo Graphql Sandbox para explorar los datos y ejecutar consultas. Simplemente ingrese la URL gráfica ( http://localhost:8080/v1/graphql ).
Si desea divertirse más, puede usar el proyector de incrustación de TensorFlow para visualizar sus datos. Para obtener los archivos .tsv requeridos, use el siguiente comando (los colocará dentro de la carpeta /example/<example-name> ):
npm run tsv --dataset=<example-name>
Estos se pueden cargar en el sitio web para visualizar sus datos.
Para crear sus propios datos, siga los ejemplos:
/examples con el nombre de su conjunto de datos.schema.json en la raíz de su carpeta de conjunto de datos. Este archivo debe contener el esquema de sus datos.data.json en la raíz de su carpeta de conjunto de datos. Este archivo debe contener los datos de su conjunto de datos.npm run populate --dataset=<your-dataset-name> para llenar la base de datos con sus datos.