LangSmith is a powerful development platform for LLM applications that provides valuable insights, debugging tools, and performance monitoring. Integrating LangSmith with RAGChat can significantly enhance your development workflow and application quality.

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.

.env
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.

.env
UPSTASH_VECTOR_REST_URL=<YOUR_URL>
UPSTASH_VECTOR_REST_TOKEN=<YOUR_TOKEN>

Setup QStash LLM

Navigate to QStash Console and copy the QSTASH_TOKEN into your .env file.

.env
QSTASH_TOKEN=<YOUR_TOKEN>

Setup LangSmith

Create a LangSmith account and get an API key from LangSmith -> Settings -> API Keys. Set your LangSmith API key as an environment variable:

.env
LANGCHAIN_API_KEY=<YOUR_API_KEY>

Setup the Project

Initialize RAGChat with LangSmith analytics:

index.ts
import { RAGChat, upstash } from "@upstash/rag-chat";
import "dotenv/config";

const ragChat = new RAGChat({
  model: upstash("meta-llama/Meta-Llama-3-8B-Instruct", {
    apiKey: process.env.QSTASH_TOKEN,
    analytics: { name: "langsmith", token: process.env.LANGCHAIN_API_KEY! },
  }),
});

Add context to the RAG Chat:

index.ts
await ragChat.context.add("The speed of light is approximately 299,792,458 meters per second.");

Chat with the RAG Chat:

index.ts
const response = await ragChat.chat("What is the speed of light?");
console.log(response);

Run

Run the project:

npx tsx index.ts

Go to the LangSmith Dashboard and navigate to Projects to view your analytics.