Custom Models
You can incorporate any 3rd party OpenAI compatible LLM into RAG Chat. We will use Together AI in this tutorial. Check out Together AI API for more information about their models and pricing.
Install RAG Chat SDK
Initialize the project and install the required packages:
npm init es6
npm install dotenv
npm install @upstash/rag-chat
Setup Upstash Redis
Create a Redis database using Upstash Console or Upstash CLI and copy the UPSTASH_REDIS_REST_URL
and UPSTASH_REDIS_REST_TOKEN
into your .env
file.
UPSTASH_REDIS_REST_URL=<YOUR_URL>
UPSTASH_REDIS_REST_TOKEN=<YOUR_TOKEN>
Setup Upstash Vector
Create a Vector index using Upstash Console or Upstash CLI and copy the UPSTASH_VECTOR_REST_URL
and UPSTASH_VECTOR_REST_TOKEN
into your .env
file.
UPSTASH_VECTOR_REST_URL=<YOUR_URL>
UPSTASH_VECTOR_REST_TOKEN=<YOUR_TOKEN>
Setup Together AI
Create a Together AI account and get an API key from Together AI API -> Settings -> API KEYS. Set your Together AI API key as an environment variable:
TOGETHER_AI_KEY=<YOUR_API_KEY>
Setup the Project
Initialize RAGChat with custom model:
import { RAGChat, custom } from "@upstash/rag-chat";
import "dotenv/config";
export const ragChat = new RAGChat({
model: custom("meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo", {
apiKey: process.env.TOGETHER_AI_KEY,
baseUrl: "https://api.together.xyz/v1",
}),
});
Add context to the RAG Chat:
await ragChat.context.add("The speed of light is approximately 299,792,458 meters per second.");
Chat with the RAG Chat:
const response = await ragChat.chat("What is the speed of light?");
console.log(response);
Run
Run the project:
npx tsx index.ts