Llamaindex ts
Skill ComeOnOliver/skillshub/skills/TerminalSkills/skills/llamaindex-ts
π§ The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.From the repository description
npx -y skills add ComeOnOliver/skillshub --skill llamaindex-tsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
4.4 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
LlamaIndex.TS β RAG Framework for TypeScript
You are an expert in LlamaIndex.TS, the TypeScript data framework for building RAG (Retrieval-Augmented Generation) applications. You help developers ingest, index, and query data from any source β documents, APIs, databases β and connect it to LLMs with vector indexes, knowledge graphs, structured extraction, agents, and multi-document synthesis.
Core Capabilities
Basic RAG Pipeline
import { VectorStoreIndex, SimpleDirectoryReader, OpenAI, Settings } from "llamaindex";
// Configure
Settings.llm = new OpenAI({ model: "gpt-4o", temperature: 0.1 });
// Load documents
const documents = await new SimpleDirectoryReader().loadData("./docs");
// Create vector index (embeds + stores automatically)
const index = await VectorStoreIndex.fromDocuments(documents);
// Query
const queryEngine = index.asQueryEngine();
const response = await queryEngine.query("How do I configure authentication?");
console.log(response.toString());
console.log(response.sourceNodes); // Source chunks with scores
// Chat (maintains conversation context)
const chatEngine = index.asChatEngine();
const chat1 = await chatEngine.chat("What are the main features?");
const chat2 = await chatEngine.chat("Tell me more about the first one");
Advanced RAG
import {
VectorStoreIndex,
SentenceSplitter,
MetadataReplacementPostProcessor,
SentenceWindowNodeParser,
OpenAIEmbedding,
} from "llamaindex";
// Sentence window retrieval (better context)
const nodeParser = new SentenceWindowNodeParser({
windowSize: 3, // Include 3 surrounding sentences
windowMetadataKey: "window",
});
const nodes = nodeParser.getNodesFromDocuments(documents);
const index = await VectorStoreIndex.fromNodes(nodes, {
embedModel: new OpenAIEmbedding({ model: "text-embedding-3-small" }),
});
const queryEngine = index.asQueryEngine({
similarityTopK: 5,
nodePostprocessors: [
new MetadataReplacementPostProcessor({ targetMetadataKey: "window" }),
],
});
// Sub-question query engine (complex multi-part queries)
import { SubQuestionQueryEngine, QueryEngineTool } from "llamaindex";
const tools = [
new QueryEngineTool({ queryEngine: docsQueryEngine, metadata: { name: "docs", description: "Product documentation" } }),
new QueryEngineTool({ queryEngine: apiQueryEngine, metadata: { name: "api", description: "API reference" } }),
];
const subQuestionEngine = SubQuestionQueryEngine.fromDefaults({ queryEngineTools: tools });
const response = await subQuestionEngine.query(
"Compare the authentication methods in the docs with the API endpoints available",
);
Agent with Tools
import { OpenAIAgent, FunctionTool } from "llamaindex";
const searchTool = FunctionTool.from(
async ({ query }: { query: string }) => {
const results = await queryEngine.query(query);
return results.toString();
},
{ name: "search_docs", description: "Search product documentation", parameters: { type: "object", properties: { query: { type: "string" } }, required: ["query"] } },
);
const sqlTool = FunctionTool.from(
async ({ query }: { query: string }) => {
const result = await db.execute(query);
return JSON.stringify(result);
},
{ name: "query_database", description: "Run SQL on analytics DB", parameters: { type: "object", properties: { query: { type: "string" } }, required: ["query"] } },
);
const agent = new OpenAIAgent({ tools: [searchTool, sqlTool] });
const response = await agent.chat("How many users signed up last week and what docs did they view?");
Installation
npm install llamaindex
Best Practices
- Sentence windows β Use
SentenceWindowNodeParserfor better retrieval context; includes surrounding text - Metadata filters β Add metadata to documents; filter at query time for scoped retrieval
- Sub-questions β Use
SubQuestionQueryEnginefor complex queries that span multiple data sources - Embeddings β Use
text-embedding-3-smallfor cost-effective search;3-largefor higher accuracy - Chunking β Tune
chunkSizeandchunkOverlapin splitter; smaller chunks = more precise retrieval - Reranking β Add a reranker post-processor to improve relevance after initial retrieval
- Agents β Use
OpenAIAgentwith tools for dynamic retrieval; agent decides which tools to call - Streaming β Use
streamChat()andstreamQuery()for real-time responses in production UIs
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.