Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/smatiolids/workshop-genai-js

DataStax GenAI for Javascript Devs
https://github.com/smatiolids/workshop-genai-js

genai langchain langflow nextjs rag

Last synced: 7 days ago
JSON representation

DataStax GenAI for Javascript Devs

Awesome Lists containing this project

README

        

# GenAI for Javascript Developers

## Prerequisitos

Uma conta no Astra DB. Você pode criar uma aqui: (https://astra.datastax.com/register)

Uma conta na OpenAI. Você pode criar uma aqui: (https://platform.openai.com/)

Recommended version: NODE 18

# Criando o app

Iniciamos a aplicação seguindo o getting started da Vercel (https://sdk.vercel.ai/docs/getting-started/nextjs-app-router)

```
cd datastax-genai-js
npm install
```

# Variáveis de ambiente

Copiar o .env.example para .env.local

```
cp .env.example .env.local
```

Atualizar as variáveis:

- ASTRA_DB_APPLICATION_TOKEN=""
- ASTRA_DB_API_ENDPOINT=""
- OPENAI_API_KEY=""
- ASTRA_DB_COLLECTION_EX1=nike_run_ex1
- OPENAI_EMBEDDING_MODEL_EX1=text-embedding-ada-002
- ASTRA_DB_COLLECTION_EX2=nike_run_ex2
- OPENAI_EMBEDDING_MODEL_EX2=text-embedding-ada-002
- OPENAI_MODEL="gpt-4-1106-preview"
- LANGFLOW_TOKEN=""
- LANGFLOW_ID=""

# Executando

```
npm run dev
```

# Ex1 - RAG + vectorize

Passos:

- Criar collection "nike_run_ex1" no Astra
- - Vector Enabled Collection
- - Configurar o $vectorize para usar os embeddings da NVIDIA
- Carregar documento em localhost:3000/v1/upload
- Acessar localhost:3000/v1/chat e fazer perguntas sobre a corrida

## Configuração do Vectorize (se utilizar embeddings OpenAI)

- Criar API Key
- - Vincular DB ao escopo da chave
- Criar collection "nike_run"
- Vincular modelo OpenAI "text-embedding-3-small"
- - Dimensões: 1536
- - Similarity Metric: Cosine

# Ex2 - RAG com LangChainJS

Passos:

- Criar collection "nike_run_langchain" no Astra
- - Definir embeddings como "Bring my own"
- - Dimensions = 1536 e Similarity Metric = Dot-Product
- Carregar documento em localhost:3000/v2/upload
- Repetir perguntas em localhost:3000v2/chat
- Acessar localhost:3000/v2/chat e fazer perguntas sobre a corrida

# Ex3 - RAG com Langflow

Passos:

- Criar um fluxo Vector Store RAG
- Adicionar sua chave da OpenAI à variável de ambiente
- Configurar o componente OpenAI Embeddings
- Escolher o Database no Astra
- Criar a collection nike_run_ex3 através da UI do Langflow
- - Dimensions: 1536 e Metric: dot_product
- Carregar o documento para a collection nike_run_ex3
- Testar o fluxo no Playground
- Atualizar variáveis de ambiente (valores disponíveis na tela Python API)
- Usar o Chat Widget

# Ex4 - Stocks & React Components

Passos:

- Acessar localhost:3000/stocks
- Criar collection "stocks" no Astra
- Carregar dados para a collection (A partir do arquivo data/stocks.csv)
- Perguntar sobre preço de ação: AAPL, GOOG, SBUX

# Questões e feedback

Email: [email protected]
Linkedin: https://www.linkedin.com/in/samuelmatioli/