Compare commits

..

2 Commits

Author SHA1 Message Date
Marcus Schiesser 2234d8ff6d chore: update lock 2025-05-09 13:54:38 +07:00
Marcus Schiesser ca2405811b fix: using new workflow with npm by forcing to use the current version of core in llamaindex (and not the one from the old workflow) 2025-05-09 12:11:42 +07:00
368 changed files with 579 additions and 3573 deletions
+10
View File
@@ -0,0 +1,10 @@
---
"@llamaindex/anthropic": patch
"@llamaindex/google": patch
"@llamaindex/openai": patch
"@llamaindex/core": patch
"@llamaindex/env": patch
"@llamaindex/examples": patch
---
Use Uint8Array instead of Buffer for file type messages (works with non-NodeJS)
+5
View File
@@ -0,0 +1,5 @@
---
"llamaindex": patch
---
Fix using new workflow with npm by forcing to use the current version of core in llamaindex (and not the one from the old workflow)
-24
View File
@@ -87,30 +87,6 @@ jobs:
run: pnpm run type-check
- name: Run Circular Dependency Check
run: pnpm run circular-check
e2e-npm:
runs-on: ubuntu-latest
name: Test using packages with npm
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Install dependencies
run: pnpm install
- name: Build packages
run: pnpm run build
- name: Pack packages
run: |
pnpm pack --pack-destination ${{ runner.temp }} -C packages/llamaindex
pnpm pack --pack-destination ${{ runner.temp }} -C packages/workflow
- name: Install packed packages
run: npm add ${{ runner.temp }}/*.tgz
working-directory: e2e/npm
- name: Run tests
run: npm test
working-directory: e2e/npm
e2e-llamaindex-examples:
strategy:
fail-fast: false
+15 -4
View File
@@ -7,10 +7,9 @@
</h3>
[![NPM Version](https://img.shields.io/npm/v/llamaindex)](https://www.npmjs.com/package/llamaindex)
[![NPM License](https://img.shields.io/npm/l/llamaindex)](https://github.com/run-llama/LlamaIndexTS/blob/main/LICENSE)
[![NPM License](https://img.shields.io/npm/l/llamaindex)](https://www.npmjs.com/package/llamaindex)
[![NPM Downloads](https://img.shields.io/npm/dm/llamaindex)](https://www.npmjs.com/package/llamaindex)
[![Discord](https://img.shields.io/discord/1059199217496772688)](https://discord.com/invite/eN6D2HQ4aX)
[![Twitter](https://img.shields.io/twitter/follow/llama_index)](https://x.com/llama_index)
Use your own data with large language models (LLMs, OpenAI ChatGPT and others) in JS runtime environments with TypeScript support.
@@ -64,7 +63,7 @@ yarn add llamaindex
### Setup in Node.js, Deno, Bun, TypeScript...?
See our official document: https://ts.llamaindex.ai/docs/llamaindex/getting_started
See our official document: <https://ts.llamaindex.ai/docs/llamaindex/getting_started/>
### Adding provider packages
@@ -84,7 +83,19 @@ Check out our NextJS playground at https://llama-playground.vercel.app/. The sou
## Core concepts for getting started:
See our documentation: https://ts.llamaindex.ai/docs/llamaindex/getting_started/concepts
- [Document](/packages/llamaindex/src/Node.ts): A document represents a text file, PDF file or other contiguous piece of data.
- [Node](/packages/llamaindex/src/Node.ts): The basic data building block. Most commonly, these are parts of the document split into manageable pieces that are small enough to be fed into an embedding model and LLM.
- [Embedding](/packages/llamaindex/src/embeddings/OpenAIEmbedding.ts): Embeddings are sets of floating point numbers which represent the data in a Node. By comparing the similarity of embeddings, we can derive an understanding of the similarity of two pieces of data. One use case is to compare the embedding of a question with the embeddings of our Nodes to see which Nodes may contain the data needed to answer that question. Because the default service context is OpenAI, the default embedding is `OpenAIEmbedding`. If using different models, say through Ollama, use this [Embedding](/packages/llamaindex/src/embeddings/OllamaEmbedding.ts) (see all [here](/packages/llamaindex/src/embeddings)).
- [Indices](/packages/llamaindex/src/indices/): Indices store the Nodes and the embeddings of those nodes. QueryEngines retrieve Nodes from these Indices using embedding similarity.
- [QueryEngine](/packages/llamaindex/src/engines/query/RetrieverQueryEngine.ts): Query engines are what generate the query you put in and give you back the result. Query engines generally combine a pre-built prompt with selected Nodes from your Index to give the LLM the context it needs to answer your query. To build a query engine from your Index (recommended), use the [`asQueryEngine`](/packages/llamaindex/src/indices/BaseIndex.ts) method on your Index. See all query engines [here](/packages/llamaindex/src/engines/query).
- [ChatEngine](/packages/llamaindex/src/engines/chat/SimpleChatEngine.ts): A ChatEngine helps you build a chatbot that will interact with your Indices. See all chat engines [here](/packages/llamaindex/src/engines/chat).
- [SimplePrompt](/packages/llamaindex/src/Prompt.ts): A simple standardized function call definition that takes in inputs and formats them in a template literal. SimplePrompts can be specialized using currying and combined using other SimplePrompt functions.
## Contributing:
-30
View File
@@ -1,35 +1,5 @@
# @llamaindex/doc
## 0.2.18
### Patch Changes
- d671ed6: Add functionality for search params when querying Qdrant vector store.
- Updated dependencies [76c9a80]
- Updated dependencies [168d11f]
- Updated dependencies [d671ed6]
- Updated dependencies [40f5f41]
- @llamaindex/openai@0.3.7
- @llamaindex/workflow@1.1.2
- @llamaindex/core@0.6.5
- @llamaindex/cloud@4.0.7
- llamaindex@0.10.6
- @llamaindex/node-parser@2.0.5
- @llamaindex/readers@3.1.3
## 0.2.17
### Patch Changes
- Updated dependencies [9b2e25a]
- @llamaindex/openai@0.3.6
- @llamaindex/core@0.6.4
- llamaindex@0.10.5
- @llamaindex/cloud@4.0.6
- @llamaindex/node-parser@2.0.4
- @llamaindex/readers@3.1.2
- @llamaindex/workflow@1.1.1
## 0.2.16
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.2.18",
"version": "0.2.16",
"private": true,
"scripts": {
"postinstall": "fumadocs-mdx",
@@ -1,60 +0,0 @@
---
title: High-Level Concepts
---
This is a quick guide to the high-level concepts you'll encounter frequently when building LLM applications.
## Large Language Models (LLMs)
LLMs are the fundamental innovation that launched LlamaIndex. They are an artificial intelligence (AI) computer system that can understand, generate, and manipulate natural language, including answering questions based on their training data or data provided to them at query time.
## Agentic Applications
When an LLM is used within an application, it is often used to make decisions, take actions, and/or interact with the world. This is the core definition of an **agentic application**.
While the definition of an agentic application is broad, there are several key characteristics that define an agentic application:
- **LLM Augmentation**: The LLM is augmented with tools (i.e. arbitrary callable functions in code), memory, and/or dynamic prompts.
- **Prompt Chaining**: Several LLM calls are used that build on each other, with the output of one LLM call being used as the input to the next.
- **Routing**: The LLM is used to route the application to the next appropriate step or state in the application.
- **Parallelism**: The application can perform multiple steps or actions in parallel.
- **Orchestration**: A hierarchical structure of LLMs is used to orchestrate lower-level actions and LLMs.
- **Reflection**: The LLM is used to reflect and validate outputs of previous steps or LLM calls, which can be used to guide the application to the next appropriate step or state.
In LlamaIndex, you can build agentic applications by using the workflows to orchestrate a sequence of steps and LLMs. You can [learn more about workflows](/docs/llamaindex/tutorials/workflows).
## Agents
We define an agent as a specific instance of an "agentic application". An agent is a piece of software that semi-autonomously performs tasks by combining LLMs with other tools and memory, orchestrated in a reasoning loop that decides which tool to use next (if any).
What this means in practice, is something like:
- An agent receives a user message
- The agent uses an LLM to determine the next appropriate action to take using the previous chat history, tools, and the latest user message
- The agent may invoke one or more tools to assist in the users request
- If tools are used, the agent will then interpret the tool outputs and use them to inform the next action
- Once the agent stops taking actions, it returns the final output to the user
You can [learn more about agents](/docs/llamaindex/tutorials/basic_agent).
## Retrieval Augmented Generation (RAG)
Retrieval-Augmented Generation (RAG) is a core technique for building data-backed LLM applications with LlamaIndex. It allows LLMs to answer questions about your private data by providing it to the LLM at query time, rather than training the LLM on your data. To avoid sending **all** of your data to the LLM every time, RAG indexes your data and selectively sends only the relevant parts along with your query. You can [learn more about RAG](/docs/llamaindex/tutorials/rag).
## Use cases
There are endless use cases for data-backed LLM applications but they can be roughly grouped into four categories:
[**Agents**](/docs/llamaindex/tutorials/basic_agent):
An agent is an automated decision-maker powered by an LLM that interacts with the world via a set of [tools](/docs/llamaindex/modules/agents/tool). Agents can take an arbitrary number of steps to complete a given task, dynamically deciding on the best course of action rather than following pre-determined steps. This gives it additional flexibility to tackle more complex tasks.
[**Workflows**](/docs/llamaindex/tutorials/workflows):
A Workflow in LlamaIndex is a specific event-driven abstraction that allows you to orchestrate a sequence of steps and LLMs calls. Workflows can be used to implement any agentic application, and are a core component of LlamaIndex.
[**Structured Data Extraction**](/docs/llamaindex/tutorials/structured_data_extraction):
Pydantic extractors allow you to specify a precise data structure to extract from your data and use LLMs to fill in the missing pieces in a type-safe way. This is useful for extracting structured data from unstructured sources like PDFs, websites, and more, and is key to automating workflows.
[**Query Engines**](/docs/llamaindex/modules/rag/query_engines):
A query engine is an end-to-end flow that allows you to ask questions over your data. It takes in a natural language query, and returns a response, along with reference context retrieved and passed to the LLM.
[**Chat Engines**](/docs/llamaindex/modules/rag/chat_engine):
A chat engine is an end-to-end flow for having a conversation with your data (multiple back-and-forth instead of a single question-and-answer).
@@ -1,4 +1,4 @@
{
"title": "Getting Started",
"pages": ["concepts", "installation", "create_llama", "examples"]
"pages": ["installation", "create_llama", "examples"]
}
@@ -88,7 +88,7 @@ async function main() {
const response = await queryEngine.query({
query: "What did the author do in college?",
}); // Additional filters and params can be passed as options
});
// Output response
console.log(response.toString());
@@ -1,17 +1,5 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.160
### Patch Changes
- llamaindex@0.10.6
## 0.0.159
### Patch Changes
- llamaindex@0.10.5
## 0.0.158
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.160",
"version": "0.0.158",
"type": "module",
"private": true,
"scripts": {
@@ -1,18 +1,5 @@
# @llamaindex/llama-parse-browser-test
## 0.0.62
### Patch Changes
- Updated dependencies [40f5f41]
- @llamaindex/cloud@4.0.7
## 0.0.61
### Patch Changes
- @llamaindex/cloud@4.0.6
## 0.0.60
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.62",
"version": "0.0.60",
"type": "module",
"scripts": {
"dev": "vite",
-12
View File
@@ -1,17 +1,5 @@
# @llamaindex/next-agent-test
## 0.1.160
### Patch Changes
- llamaindex@0.10.6
## 0.1.159
### Patch Changes
- llamaindex@0.10.5
## 0.1.158
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.160",
"version": "0.1.158",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,17 +1,5 @@
# test-edge-runtime
## 0.1.159
### Patch Changes
- llamaindex@0.10.6
## 0.1.158
### Patch Changes
- llamaindex@0.10.5
## 0.1.157
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.159",
"version": "0.1.157",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,22 +1,5 @@
# @llamaindex/next-node-runtime
## 0.1.27
### Patch Changes
- Updated dependencies [76c9a80]
- @llamaindex/huggingface@0.1.9
- llamaindex@0.10.6
- @llamaindex/readers@3.1.3
## 0.1.26
### Patch Changes
- llamaindex@0.10.5
- @llamaindex/huggingface@0.1.8
- @llamaindex/readers@3.1.2
## 0.1.25
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.1.27",
"version": "0.1.25",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,17 +1,5 @@
# vite-import-llamaindex
## 0.0.26
### Patch Changes
- llamaindex@0.10.6
## 0.0.25
### Patch Changes
- llamaindex@0.10.5
## 0.0.24
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "vite-import-llamaindex",
"private": true,
"version": "0.0.26",
"version": "0.0.24",
"type": "module",
"scripts": {
"build": "vite build",
@@ -1 +0,0 @@
{"root":["./src/main.ts","./vite.config.ts"],"version":"5.7.3"}
@@ -1,19 +1,5 @@
# @llamaindex/waku-query-engine-test
## 0.0.160
### Patch Changes
- llamaindex@0.10.6
## 0.0.159
### Patch Changes
- Updated dependencies [9b2e25a]
- @llamaindex/env@0.1.30
- llamaindex@0.10.5
## 0.0.158
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.160",
"version": "0.0.158",
"type": "module",
"private": true,
"scripts": {
-1
View File
@@ -1 +0,0 @@
package-lock.json
-16
View File
@@ -1,16 +0,0 @@
{
"name": "e2e-npm",
"private": true,
"scripts": {
"test": "node --import tsx --test test/*.e2e.ts"
},
"dependencies": {
"@llamaindex/workflow": "1.1.1",
"llamaindex": "0.10.5",
"zod": "^3.23.8"
},
"devDependencies": {
"tsx": "^4.19.1",
"@types/node": "^22.9.0"
}
}
-28
View File
@@ -1,28 +0,0 @@
import { agent } from "@llamaindex/workflow";
import { OpenAI, Settings, tool } from "llamaindex";
import { ok } from "node:assert";
import { test } from "node:test";
import { z } from "zod";
Settings.llm = new OpenAI({ model: "gpt-4-0613" });
test("creating agent from workflow package", async () => {
const calculatorAgent = agent({
tools: [
tool({
name: "add",
description: "Adds two numbers",
parameters: z.object({ x: z.number(), y: z.number() }),
execute: ({ x, y }) => x + y,
}),
],
});
ok(calculatorAgent !== undefined, "calculatorAgent should be defined");
const agents = calculatorAgent.getAgents();
const currentLLM = agents?.[0].llm;
ok(
(currentLLM as OpenAI)?.model === (Settings.llm as OpenAI)?.model,
"Agent should use the same LLM model as setup in Settings instance",
);
});
-13
View File
@@ -1,13 +0,0 @@
{
"compilerOptions": {
"module": "node16",
"moduleResolution": "node16",
"target": "ESNext",
"types": ["node"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["test/**/*.ts"]
}
+2 -1
View File
@@ -1,2 +1,3 @@
package-lock.json
tmp_data
storage
tmp_data
-111
View File
@@ -1,116 +1,5 @@
# examples
## 0.3.15
### Patch Changes
- d671ed6: Add functionality for search params when querying Qdrant vector store.
- Updated dependencies [7a7ca60]
- Updated dependencies [7a7ca60]
- Updated dependencies [76c9a80]
- Updated dependencies [168d11f]
- Updated dependencies [d671ed6]
- Updated dependencies [40f5f41]
- @llamaindex/xai@0.0.2
- @llamaindex/fireworks@0.0.15
- @llamaindex/elastic-search@0.1.5
- @llamaindex/firestore@1.0.12
- @llamaindex/pinecone@0.1.5
- @llamaindex/postgres@0.0.48
- @llamaindex/supabase@0.1.4
- @llamaindex/weaviate@0.0.19
- @llamaindex/mongodb@0.0.20
- @llamaindex/upstash@0.0.19
- @llamaindex/chroma@0.0.19
- @llamaindex/milvus@0.1.14
- @llamaindex/qdrant@0.1.14
- @llamaindex/astra@0.0.19
- @llamaindex/azure@0.1.15
- @llamaindex/huggingface@0.1.9
- @llamaindex/assemblyai@0.1.4
- @llamaindex/mixedbread@0.0.19
- @llamaindex/perplexity@0.0.12
- @llamaindex/portkey-ai@0.0.47
- @llamaindex/anthropic@0.3.6
- @llamaindex/deepinfra@0.0.55
- @llamaindex/replicate@0.0.47
- @llamaindex/voyage-ai@1.0.11
- @llamaindex/discord@0.1.4
- @llamaindex/mistral@0.1.5
- @llamaindex/cohere@0.0.19
- @llamaindex/google@0.3.1
- @llamaindex/jinaai@0.0.15
- @llamaindex/notion@0.1.4
- @llamaindex/ollama@0.1.5
- @llamaindex/openai@0.3.7
- @llamaindex/vercel@0.1.5
- @llamaindex/clip@0.0.55
- @llamaindex/tools@0.0.10
- @llamaindex/workflow@1.1.2
- @llamaindex/core@0.6.5
- @llamaindex/cloud@4.0.7
- llamaindex@0.10.6
- @llamaindex/deepseek@0.0.15
- @llamaindex/groq@0.0.70
- @llamaindex/together@0.0.15
- @llamaindex/vllm@0.0.41
- @llamaindex/node-parser@2.0.5
- @llamaindex/readers@3.1.3
## 0.3.14
### Patch Changes
- 9b2e25a: Use Uint8Array instead of Buffer for file type messages (works with non-NodeJS)
- 206b491: Add support for google live api
- Updated dependencies [9b2e25a]
- Updated dependencies [206b491]
- @llamaindex/anthropic@0.3.5
- @llamaindex/google@0.3.0
- @llamaindex/openai@0.3.6
- @llamaindex/core@0.6.4
- @llamaindex/env@0.1.30
- llamaindex@0.10.5
- @llamaindex/clip@0.0.54
- @llamaindex/deepinfra@0.0.54
- @llamaindex/deepseek@0.0.14
- @llamaindex/fireworks@0.0.14
- @llamaindex/groq@0.0.69
- @llamaindex/huggingface@0.1.8
- @llamaindex/jinaai@0.0.14
- @llamaindex/perplexity@0.0.11
- @llamaindex/azure@0.1.14
- @llamaindex/elastic-search@0.1.4
- @llamaindex/milvus@0.1.13
- @llamaindex/qdrant@0.1.13
- @llamaindex/supabase@0.1.3
- @llamaindex/together@0.0.14
- @llamaindex/vllm@0.0.40
- @llamaindex/cloud@4.0.6
- @llamaindex/node-parser@2.0.4
- @llamaindex/assemblyai@0.1.3
- @llamaindex/cohere@0.0.18
- @llamaindex/discord@0.1.3
- @llamaindex/mistral@0.1.4
- @llamaindex/mixedbread@0.0.18
- @llamaindex/notion@0.1.3
- @llamaindex/ollama@0.1.4
- @llamaindex/portkey-ai@0.0.46
- @llamaindex/replicate@0.0.46
- @llamaindex/astra@0.0.18
- @llamaindex/chroma@0.0.18
- @llamaindex/firestore@1.0.11
- @llamaindex/mongodb@0.0.19
- @llamaindex/pinecone@0.1.4
- @llamaindex/postgres@0.0.47
- @llamaindex/upstash@0.0.18
- @llamaindex/weaviate@0.0.18
- @llamaindex/vercel@0.1.4
- @llamaindex/voyage-ai@1.0.10
- @llamaindex/readers@3.1.2
- @llamaindex/tools@0.0.9
- @llamaindex/workflow@1.1.1
## 0.3.13
### Patch Changes
+1 -1
View File
@@ -9,7 +9,7 @@ make sure you have basic knowledge of the [LlamaIndexTS](https://ts.llamaindex.a
# export your API key
export OPENAI_API_KEY="sk-..."
npx tsx ./rag/chatEngine.ts
npx tsx ./chatEngine.ts
```
## Build your own RAG app
+1 -1
View File
@@ -3,7 +3,7 @@
*/
import { openai } from "@llamaindex/openai";
import { agent } from "@llamaindex/workflow";
import { getWeatherTool } from "../../deprecated/agents/utils/tools";
import { getWeatherTool } from "../deprecated/utils/tools";
async function main() {
const weatherAgent = agent({
+1 -1
View File
@@ -1,6 +1,6 @@
import { ollama } from "@llamaindex/ollama";
import { agent } from "@llamaindex/workflow";
import { getWeatherTool } from "../../deprecated/agents/utils/tools";
import { getWeatherTool } from "../deprecated/utils/tools";
async function main() {
const myAgent = agent({
@@ -1,5 +1,5 @@
import { Document, KeywordTableIndex } from "llamaindex";
import essay from "../../data/essay";
import essay from "../essay";
async function main() {
const document = new Document({ text: essay });
@@ -1,5 +1,5 @@
import { Document, SummaryIndex, SummaryRetrieverMode } from "llamaindex";
import essay from "../../data/essay";
import essay from "../essay";
async function main() {
const document = new Document({ text: essay });
@@ -1,5 +1,5 @@
import { Document, VectorStoreIndex } from "llamaindex";
import essay from "../../data/essay";
import essay from "../essay";
async function main() {
const document = new Document({ text: essay });
@@ -8,7 +8,7 @@ import {
VectorStoreIndex,
} from "llamaindex";
import essay from "../data/essay";
import essay from "./essay";
// Update chunk size
Settings.chunkSize = 512;
@@ -1,7 +1,7 @@
import { OpenAI } from "@llamaindex/openai";
import { Document, SentenceSplitter, TitleExtractor } from "llamaindex";
import essay from "../../data/essay";
import essay from "../essay";
(async () => {
const openaiLLM = new OpenAI({ model: "gpt-3.5-turbo-0125", temperature: 0 });

Some files were not shown because too many files have changed in this diff Show More