Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/smatiolids/workshop-genai-js
- Owner: smatiolids
- Created: 2024-06-07T17:30:34.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-09-17T12:13:06.000Z (about 2 months ago)
- Last Synced: 2024-09-18T01:56:33.086Z (about 2 months ago)
- Topics: genai, langchain, langflow, nextjs, rag
- Language: TypeScript
- Homepage:
- Size: 4.16 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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/