mirror of
https://github.com/run-llama/LlamaIndexTS.git
synced 2026-07-15 06:52:45 -04:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3b0f55f1ea | |||
| a9c6144eec | |||
| 3564244ced | |||
| d952e68ec4 | |||
| 5c026e839f | |||
| 9c1c5b4d50 | |||
| c902fcbc33 | |||
| 88d776f392 | |||
| 6fcc6bcb84 | |||
| be74207945 | |||
| 6be223dfad | |||
| 4cbfdb5f5c |
@@ -119,6 +119,7 @@ jobs:
|
|||||||
|
|
||||||
size-limit:
|
size-limit:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
name: Size Limit
|
name: Size Limit
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -132,12 +133,13 @@ jobs:
|
|||||||
run: pnpm install
|
run: pnpm install
|
||||||
- name: Build llamaindex
|
- name: Build llamaindex
|
||||||
run: pnpm run build
|
run: pnpm run build
|
||||||
- uses: andresz1/size-limit-action@v1
|
- uses: andresz1/size-limit-action@94bc357df29c36c8f8d50ea497c3e225c3c95d1d
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
directory: e2e/examples/vite-import-llamaindex
|
directory: e2e/examples/vite-import-llamaindex
|
||||||
skip_step: "install"
|
skip_step: "install"
|
||||||
build_script: build
|
build_script: build
|
||||||
|
package_manager: pnpm
|
||||||
|
|
||||||
typecheck-examples:
|
typecheck-examples:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -1,5 +1,26 @@
|
|||||||
# @llamaindex/doc
|
# @llamaindex/doc
|
||||||
|
|
||||||
|
## 0.1.3
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
- @llamaindex/cloud@3.0.3
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
- @llamaindex/node-parser@1.0.2
|
||||||
|
- @llamaindex/openai@0.1.54
|
||||||
|
- @llamaindex/readers@2.0.2
|
||||||
|
|
||||||
|
## 0.1.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [c902fcb]
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- @llamaindex/cloud@3.0.2
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 0.1.1
|
## 0.1.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/doc",
|
"name": "@llamaindex/doc",
|
||||||
"version": "0.1.1",
|
"version": "0.1.3",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "pnpm run build:docs && next build",
|
"build": "pnpm run build:docs && next build",
|
||||||
@@ -44,10 +44,10 @@
|
|||||||
"hast-util-to-jsx-runtime": "^2.3.2",
|
"hast-util-to-jsx-runtime": "^2.3.2",
|
||||||
"llamaindex": "workspace:*",
|
"llamaindex": "workspace:*",
|
||||||
"lucide-react": "^0.460.0",
|
"lucide-react": "^0.460.0",
|
||||||
"next": "15.0.3",
|
"next": "15.1.7",
|
||||||
"next-themes": "^0.4.3",
|
"next-themes": "^0.4.3",
|
||||||
"react": "^18.3.1",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^18.3.1",
|
"react-dom": "^19.0.0",
|
||||||
"react-icons": "^5.3.0",
|
"react-icons": "^5.3.0",
|
||||||
"react-monaco-editor": "^0.56.2",
|
"react-monaco-editor": "^0.56.2",
|
||||||
"react-text-transition": "^3.1.0",
|
"react-text-transition": "^3.1.0",
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# @llamaindex/cloudflare-worker-agent-test
|
# @llamaindex/cloudflare-worker-agent-test
|
||||||
|
|
||||||
|
## 0.0.137
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
|
||||||
|
## 0.0.136
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 0.0.135
|
## 0.0.135
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/cloudflare-worker-agent-test",
|
"name": "@llamaindex/cloudflare-worker-agent-test",
|
||||||
"version": "0.0.135",
|
"version": "0.0.137",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# @llamaindex/llama-parse-browser-test
|
# @llamaindex/llama-parse-browser-test
|
||||||
|
|
||||||
|
## 0.0.48
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- @llamaindex/cloud@3.0.3
|
||||||
|
|
||||||
|
## 0.0.47
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [c902fcb]
|
||||||
|
- @llamaindex/cloud@3.0.2
|
||||||
|
|
||||||
## 0.0.46
|
## 0.0.46
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/llama-parse-browser-test",
|
"name": "@llamaindex/llama-parse-browser-test",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.46",
|
"version": "0.0.48",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# @llamaindex/next-agent-test
|
# @llamaindex/next-agent-test
|
||||||
|
|
||||||
|
## 0.1.137
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
|
||||||
|
## 0.1.136
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 0.1.135
|
## 0.1.135
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/next-agent-test",
|
"name": "@llamaindex/next-agent-test",
|
||||||
"version": "0.1.135",
|
"version": "0.1.137",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
@@ -10,9 +10,9 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ai": "^4.0.0",
|
"ai": "^4.0.0",
|
||||||
"llamaindex": "workspace:*",
|
"llamaindex": "workspace:*",
|
||||||
"next": "15.0.3",
|
"next": "15.1.7",
|
||||||
"react": "18.3.1",
|
"react": "19.0.0",
|
||||||
"react-dom": "18.3.1"
|
"react-dom": "19.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.9.0",
|
"@types/node": "^22.9.0",
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# test-edge-runtime
|
# test-edge-runtime
|
||||||
|
|
||||||
|
## 0.1.136
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
|
||||||
|
## 0.1.135
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 0.1.134
|
## 0.1.134
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/nextjs-edge-runtime-test",
|
"name": "@llamaindex/nextjs-edge-runtime-test",
|
||||||
"version": "0.1.134",
|
"version": "0.1.136",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"llamaindex": "workspace:*",
|
"llamaindex": "workspace:*",
|
||||||
"next": "15.0.3",
|
"next": "15.1.7",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1"
|
"react-dom": "^18.3.1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,20 @@
|
|||||||
# @llamaindex/next-node-runtime
|
# @llamaindex/next-node-runtime
|
||||||
|
|
||||||
|
## 0.1.3
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
- @llamaindex/huggingface@0.0.38
|
||||||
|
- @llamaindex/readers@2.0.2
|
||||||
|
|
||||||
|
## 0.1.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 0.1.1
|
## 0.1.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/next-node-runtime-test",
|
"name": "@llamaindex/next-node-runtime-test",
|
||||||
"version": "0.1.1",
|
"version": "0.1.3",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
@@ -11,9 +11,9 @@
|
|||||||
"llamaindex": "workspace:*",
|
"llamaindex": "workspace:*",
|
||||||
"@llamaindex/huggingface": "workspace:*",
|
"@llamaindex/huggingface": "workspace:*",
|
||||||
"@llamaindex/readers": "workspace:*",
|
"@llamaindex/readers": "workspace:*",
|
||||||
"next": "15.0.3",
|
"next": "15.1.7",
|
||||||
"react": "18.3.1",
|
"react": "19.0.0",
|
||||||
"react-dom": "18.3.1"
|
"react-dom": "19.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.9.0",
|
"@types/node": "^22.9.0",
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# vite-import-llamaindex
|
# vite-import-llamaindex
|
||||||
|
|
||||||
|
## 0.0.3
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
|
||||||
|
## 0.0.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 0.0.1
|
## 0.0.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "vite-import-llamaindex",
|
"name": "vite-import-llamaindex",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.1",
|
"version": "0.0.3",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ dist
|
|||||||
.cache
|
.cache
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.pem
|
*.pem
|
||||||
|
/src/pages.gen.ts
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# @llamaindex/waku-query-engine-test
|
# @llamaindex/waku-query-engine-test
|
||||||
|
|
||||||
|
## 0.0.137
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
|
||||||
|
## 0.0.136
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 0.0.135
|
## 0.0.135
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/waku-query-engine-test",
|
"name": "@llamaindex/waku-query-engine-test",
|
||||||
"version": "0.0.135",
|
"version": "0.0.137",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -11,10 +11,10 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@llamaindex/env": "workspace:*",
|
"@llamaindex/env": "workspace:*",
|
||||||
"llamaindex": "workspace:*",
|
"llamaindex": "workspace:*",
|
||||||
"react": "19.0.0-rc-5c56b873-20241107",
|
"react": "19.0.0",
|
||||||
"react-dom": "19.0.0-rc-5c56b873-20241107",
|
"react-dom": "19.0.0",
|
||||||
"react-server-dom-webpack": "19.0.0-rc-5c56b873-20241107",
|
"react-server-dom-webpack": "19.0.0",
|
||||||
"waku": "0.21.6"
|
"waku": "0.21.20"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/react": "18.3.12",
|
"@types/react": "18.3.12",
|
||||||
|
|||||||
@@ -1,5 +1,48 @@
|
|||||||
# examples
|
# examples
|
||||||
|
|
||||||
|
## 0.2.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- 3564244: Add support for claude 3.7 thinking (and set default temperature to 1)
|
||||||
|
- 3564244: add support for claude 3.7
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- Updated dependencies [a9c6144]
|
||||||
|
- Updated dependencies [5c026e8]
|
||||||
|
- Updated dependencies [3564244]
|
||||||
|
- Updated dependencies [3564244]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
- @llamaindex/anthropic@0.2.0
|
||||||
|
- @llamaindex/firestore@1.0.0
|
||||||
|
- @llamaindex/cloud@3.0.3
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
- @llamaindex/node-parser@1.0.2
|
||||||
|
- @llamaindex/clip@0.0.38
|
||||||
|
- @llamaindex/cohere@0.0.7
|
||||||
|
- @llamaindex/deepinfra@0.0.38
|
||||||
|
- @llamaindex/google@0.0.9
|
||||||
|
- @llamaindex/huggingface@0.0.38
|
||||||
|
- @llamaindex/mistral@0.0.7
|
||||||
|
- @llamaindex/mixedbread@0.0.7
|
||||||
|
- @llamaindex/ollama@0.0.42
|
||||||
|
- @llamaindex/openai@0.1.54
|
||||||
|
- @llamaindex/portkey-ai@0.0.35
|
||||||
|
- @llamaindex/replicate@0.0.35
|
||||||
|
- @llamaindex/astra@0.0.7
|
||||||
|
- @llamaindex/azure@0.1.2
|
||||||
|
- @llamaindex/chroma@0.0.7
|
||||||
|
- @llamaindex/milvus@0.1.2
|
||||||
|
- @llamaindex/mongodb@0.0.7
|
||||||
|
- @llamaindex/pinecone@0.0.7
|
||||||
|
- @llamaindex/postgres@0.0.35
|
||||||
|
- @llamaindex/qdrant@0.1.2
|
||||||
|
- @llamaindex/upstash@0.0.7
|
||||||
|
- @llamaindex/weaviate@0.0.7
|
||||||
|
- @llamaindex/vercel@0.0.13
|
||||||
|
- @llamaindex/readers@2.0.2
|
||||||
|
- @llamaindex/groq@0.0.53
|
||||||
|
- @llamaindex/vllm@0.0.24
|
||||||
|
|
||||||
## 0.2.1
|
## 0.2.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Settings.callbackManager.on("llm-tool-call", (event) => {
|
|||||||
|
|
||||||
const anthropic = new Anthropic({
|
const anthropic = new Anthropic({
|
||||||
apiKey: process.env.ANTHROPIC_API_KEY,
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
||||||
model: "claude-3-5-sonnet",
|
model: "claude-3-7-sonnet",
|
||||||
});
|
});
|
||||||
|
|
||||||
const agent = new AnthropicAgent({
|
const agent = new AnthropicAgent({
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { Anthropic } from "@llamaindex/anthropic";
|
|||||||
(async () => {
|
(async () => {
|
||||||
const anthropic = new Anthropic({
|
const anthropic = new Anthropic({
|
||||||
apiKey: process.env.ANTHROPIC_API_KEY,
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
||||||
model: "claude-3-opus",
|
model: "claude-3-7-sonnet",
|
||||||
});
|
});
|
||||||
const result = await anthropic.chat({
|
const result = await anthropic.chat({
|
||||||
messages: [
|
messages: [
|
||||||
@@ -15,5 +15,5 @@ import { Anthropic } from "@llamaindex/anthropic";
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
console.log(result);
|
console.log(result.message.content);
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import readline from "node:readline/promises";
|
|||||||
(async () => {
|
(async () => {
|
||||||
const llm = new Anthropic({
|
const llm = new Anthropic({
|
||||||
apiKey: process.env.ANTHROPIC_API_KEY,
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
||||||
model: "claude-3-opus",
|
model: "claude-3-7-sonnet",
|
||||||
});
|
});
|
||||||
// chatHistory will store all the messages in the conversation
|
// chatHistory will store all the messages in the conversation
|
||||||
const chatHistory = new ChatMemoryBuffer({
|
const chatHistory = new ChatMemoryBuffer({
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Anthropic } from "@llamaindex/anthropic";
|
|||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
const anthropic = new Anthropic({
|
const anthropic = new Anthropic({
|
||||||
model: "claude-3-5-sonnet-20241022",
|
model: "claude-3-7-sonnet",
|
||||||
});
|
});
|
||||||
|
|
||||||
const entireBook = await fetch(
|
const entireBook = await fetch(
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { Anthropic } from "@llamaindex/anthropic";
|
|||||||
(async () => {
|
(async () => {
|
||||||
const anthropic = new Anthropic({
|
const anthropic = new Anthropic({
|
||||||
apiKey: process.env.ANTHROPIC_API_KEY,
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
||||||
model: "claude-3-5-sonnet",
|
model: "claude-3-7-sonnet",
|
||||||
});
|
});
|
||||||
const stream = await anthropic.chat({
|
const stream = await anthropic.chat({
|
||||||
messages: [
|
messages: [
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
import { Anthropic } from "@llamaindex/anthropic";
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
const anthropic = new Anthropic({
|
||||||
|
model: "claude-3-7-sonnet",
|
||||||
|
maxTokens: 20000,
|
||||||
|
additionalChatOptions: {
|
||||||
|
thinking: {
|
||||||
|
type: "enabled",
|
||||||
|
budget_tokens: 16000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const result = await anthropic.chat({
|
||||||
|
messages: [
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content:
|
||||||
|
"Are there an infinite number of prime numbers such that n mod 4 == 3?",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
stream: true,
|
||||||
|
});
|
||||||
|
console.log("Thinking...");
|
||||||
|
for await (const chunk of result) {
|
||||||
|
if (chunk.delta) {
|
||||||
|
process.stdout.write(chunk.delta);
|
||||||
|
} else if (chunk.options?.thinking) {
|
||||||
|
process.stdout.write(chunk.options.thinking);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
GCP_PROJECT_ID=
|
||||||
|
GCP_CREDENTIALS=
|
||||||
|
FIRESTORE_DB=
|
||||||
|
OPENAI_API_KEY=
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# Firestore Vector Store
|
||||||
|
|
||||||
|
Here are some sample scripts which work with loading and querying data from a Firestore Vector Store.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- A Firestore Database
|
||||||
|
- Hosted https://console.firebase.google.com/
|
||||||
|
- An OpenAI API Key
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
1. Set your env variables:
|
||||||
|
|
||||||
|
- `FIRESTORE_DB`: Name of your Firestore database
|
||||||
|
- `GCP_PROJECT_ID`: Your GCP project ID
|
||||||
|
- `GCP_CREDENTIALS`: Your GCP credentials JSON
|
||||||
|
- `OPENAI_API_KEY`: Your OpenAI key
|
||||||
|
|
||||||
|
2. `cd` Into the `examples` directory
|
||||||
|
3. run `npm i`
|
||||||
|
|
||||||
|
## Load the data
|
||||||
|
|
||||||
|
This sample loads the same dataset of movie reviews as sample dataset
|
||||||
|
|
||||||
|
run `npx tsx firestore/load.ts`
|
||||||
|
|
||||||
|
## Use RAG to Query the data
|
||||||
|
|
||||||
|
run `npx tsx firestore/query.ts`
|
||||||
|
|
||||||
|
## Delete the data
|
||||||
|
|
||||||
|
run `npx tsx firestore/delete.ts`
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
import { CollectionReference } from "@google-cloud/firestore";
|
||||||
|
import "dotenv/config";
|
||||||
|
|
||||||
|
import { FirestoreVectorStore } from "@llamaindex/firestore";
|
||||||
|
import { OpenAIEmbedding, Settings } from "llamaindex";
|
||||||
|
|
||||||
|
const indexName = "MovieReviews";
|
||||||
|
|
||||||
|
Settings.embedModel = new OpenAIEmbedding();
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
try {
|
||||||
|
const vectorStore = new FirestoreVectorStore({
|
||||||
|
clientOptions: {
|
||||||
|
credentials: JSON.parse(process.env.GCP_CREDENTIALS!),
|
||||||
|
projectId: process.env.GCP_PROJECT_ID!,
|
||||||
|
databaseId: process.env.FIRESTORE_DB!,
|
||||||
|
ignoreUndefinedProperties: true,
|
||||||
|
},
|
||||||
|
collectionName: indexName,
|
||||||
|
customCollectionReference: (rootCollection: CollectionReference) => {
|
||||||
|
return rootCollection.doc("accountId-123").collection("vectors");
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
vectorStore.delete("movie_reviews.csv");
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void main();
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
import { CollectionReference } from "@google-cloud/firestore";
|
||||||
|
import { CSVReader } from "@llamaindex/readers/csv";
|
||||||
|
import "dotenv/config";
|
||||||
|
|
||||||
|
import {
|
||||||
|
OpenAIEmbedding,
|
||||||
|
Settings,
|
||||||
|
storageContextFromDefaults,
|
||||||
|
VectorStoreIndex,
|
||||||
|
} from "llamaindex";
|
||||||
|
|
||||||
|
import { FirestoreVectorStore } from "@llamaindex/firestore";
|
||||||
|
|
||||||
|
const indexName = "MovieReviews";
|
||||||
|
|
||||||
|
Settings.embedModel = new OpenAIEmbedding();
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
try {
|
||||||
|
const reader = new CSVReader(false);
|
||||||
|
const docs = await reader.loadData("./data/movie_reviews.csv");
|
||||||
|
|
||||||
|
const vectorStore = new FirestoreVectorStore({
|
||||||
|
clientOptions: {
|
||||||
|
credentials: JSON.parse(process.env.GCP_CREDENTIALS!),
|
||||||
|
projectId: process.env.GCP_PROJECT_ID!,
|
||||||
|
databaseId: process.env.FIRESTORE_DB!,
|
||||||
|
ignoreUndefinedProperties: true,
|
||||||
|
},
|
||||||
|
collectionName: indexName,
|
||||||
|
customCollectionReference: (rootCollection: CollectionReference) => {
|
||||||
|
return rootCollection.doc("accountId-123").collection("vectors");
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const storageContext = await storageContextFromDefaults({ vectorStore });
|
||||||
|
|
||||||
|
await VectorStoreIndex.fromDocuments(docs, { storageContext });
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void main();
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
import "dotenv/config";
|
||||||
|
|
||||||
|
import { OpenAIEmbedding, Settings, VectorStoreIndex } from "llamaindex";
|
||||||
|
|
||||||
|
import { CollectionReference } from "@google-cloud/firestore";
|
||||||
|
import { FirestoreVectorStore } from "@llamaindex/firestore";
|
||||||
|
|
||||||
|
const indexName = "MovieReviews";
|
||||||
|
|
||||||
|
Settings.embedModel = new OpenAIEmbedding();
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
try {
|
||||||
|
const vectorStore = new FirestoreVectorStore({
|
||||||
|
clientOptions: {
|
||||||
|
credentials: JSON.parse(process.env.GCP_CREDENTIALS!),
|
||||||
|
projectId: process.env.GCP_PROJECT_ID!,
|
||||||
|
databaseId: process.env.FIRESTORE_DB!,
|
||||||
|
ignoreUndefinedProperties: true,
|
||||||
|
},
|
||||||
|
collectionName: indexName,
|
||||||
|
customCollectionReference: (rootCollection: CollectionReference) => {
|
||||||
|
return rootCollection.doc("accountId-123").collection("vectors");
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const index = await VectorStoreIndex.fromVectorStore(vectorStore);
|
||||||
|
const retriever = index.asRetriever({ similarityTopK: 20 });
|
||||||
|
|
||||||
|
const queryEngine = index.asQueryEngine({ retriever });
|
||||||
|
const query = "Get all movie titles.";
|
||||||
|
const results = await queryEngine.query({ query });
|
||||||
|
console.log(`Query from ${results.sourceNodes?.length} nodes`);
|
||||||
|
console.log(results.response);
|
||||||
|
|
||||||
|
console.log("\n=====\nQuerying the index with filters");
|
||||||
|
const queryEngineWithFilters = index.asQueryEngine({
|
||||||
|
retriever,
|
||||||
|
preFilters: {
|
||||||
|
filters: [
|
||||||
|
{
|
||||||
|
key: "file_name",
|
||||||
|
value: "movie_reviews.csv",
|
||||||
|
operator: "==",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const resultAfterFilter = await queryEngineWithFilters.query({
|
||||||
|
query: "Get all movie titles.",
|
||||||
|
});
|
||||||
|
console.log(`Query from ${resultAfterFilter.sourceNodes?.length} nodes`);
|
||||||
|
console.log(resultAfterFilter.response);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void main();
|
||||||
+32
-31
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/examples",
|
"name": "@llamaindex/examples",
|
||||||
"version": "0.2.1",
|
"version": "0.2.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
@@ -11,36 +11,37 @@
|
|||||||
"@azure/cosmos": "^4.1.1",
|
"@azure/cosmos": "^4.1.1",
|
||||||
"@azure/identity": "^4.4.1",
|
"@azure/identity": "^4.4.1",
|
||||||
"@azure/search-documents": "^12.1.0",
|
"@azure/search-documents": "^12.1.0",
|
||||||
"@llamaindex/anthropic": "^0.1.1",
|
"@llamaindex/anthropic": "^0.2.0",
|
||||||
"@llamaindex/astra": "^0.0.6",
|
"@llamaindex/astra": "^0.0.7",
|
||||||
"@llamaindex/azure": "^0.1.1",
|
"@llamaindex/azure": "^0.1.2",
|
||||||
"@llamaindex/chroma": "^0.0.6",
|
"@llamaindex/chroma": "^0.0.7",
|
||||||
"@llamaindex/clip": "^0.0.37",
|
"@llamaindex/clip": "^0.0.38",
|
||||||
"@llamaindex/cloud": "^3.0.1",
|
"@llamaindex/cloud": "^3.0.3",
|
||||||
"@llamaindex/cohere": "^0.0.6",
|
"@llamaindex/cohere": "^0.0.7",
|
||||||
"@llamaindex/core": "^0.5.1",
|
"@llamaindex/core": "^0.5.2",
|
||||||
"@llamaindex/deepinfra": "^0.0.37",
|
"@llamaindex/deepinfra": "^0.0.38",
|
||||||
"@llamaindex/env": "^0.1.28",
|
"@llamaindex/env": "^0.1.28",
|
||||||
"@llamaindex/google": "^0.0.8",
|
"@llamaindex/firestore": "^1.0.0",
|
||||||
"@llamaindex/groq": "^0.0.52",
|
"@llamaindex/google": "^0.0.9",
|
||||||
"@llamaindex/huggingface": "^0.0.37",
|
"@llamaindex/groq": "^0.0.53",
|
||||||
"@llamaindex/milvus": "^0.1.1",
|
"@llamaindex/huggingface": "^0.0.38",
|
||||||
"@llamaindex/mistral": "^0.0.6",
|
"@llamaindex/milvus": "^0.1.2",
|
||||||
"@llamaindex/mixedbread": "^0.0.6",
|
"@llamaindex/mistral": "^0.0.7",
|
||||||
"@llamaindex/mongodb": "^0.0.6",
|
"@llamaindex/mixedbread": "^0.0.7",
|
||||||
"@llamaindex/node-parser": "^1.0.1",
|
"@llamaindex/mongodb": "^0.0.7",
|
||||||
"@llamaindex/ollama": "^0.0.41",
|
"@llamaindex/node-parser": "^1.0.2",
|
||||||
"@llamaindex/openai": "^0.1.53",
|
"@llamaindex/ollama": "^0.0.42",
|
||||||
"@llamaindex/pinecone": "^0.0.6",
|
"@llamaindex/openai": "^0.1.54",
|
||||||
"@llamaindex/portkey-ai": "^0.0.34",
|
"@llamaindex/pinecone": "^0.0.7",
|
||||||
"@llamaindex/postgres": "^0.0.34",
|
"@llamaindex/portkey-ai": "^0.0.35",
|
||||||
"@llamaindex/qdrant": "^0.1.1",
|
"@llamaindex/postgres": "^0.0.35",
|
||||||
"@llamaindex/readers": "^2.0.1",
|
"@llamaindex/qdrant": "^0.1.2",
|
||||||
"@llamaindex/replicate": "^0.0.34",
|
"@llamaindex/readers": "^2.0.2",
|
||||||
"@llamaindex/upstash": "^0.0.6",
|
"@llamaindex/replicate": "^0.0.35",
|
||||||
"@llamaindex/vercel": "^0.0.12",
|
"@llamaindex/upstash": "^0.0.7",
|
||||||
"@llamaindex/vllm": "^0.0.23",
|
"@llamaindex/vercel": "^0.0.13",
|
||||||
"@llamaindex/weaviate": "^0.0.6",
|
"@llamaindex/vllm": "^0.0.24",
|
||||||
|
"@llamaindex/weaviate": "^0.0.7",
|
||||||
"@llamaindex/workflow": "^0.0.11",
|
"@llamaindex/workflow": "^0.0.11",
|
||||||
"@notionhq/client": "^2.2.15",
|
"@notionhq/client": "^2.2.15",
|
||||||
"@pinecone-database/pinecone": "^4.0.0",
|
"@pinecone-database/pinecone": "^4.0.0",
|
||||||
@@ -50,7 +51,7 @@
|
|||||||
"commander": "^12.1.0",
|
"commander": "^12.1.0",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"js-tiktoken": "^1.0.14",
|
"js-tiktoken": "^1.0.14",
|
||||||
"llamaindex": "^0.9.1",
|
"llamaindex": "^0.9.3",
|
||||||
"mongodb": "6.7.0",
|
"mongodb": "6.7.0",
|
||||||
"pathe": "^1.1.2",
|
"pathe": "^1.1.2",
|
||||||
"postgres": "^3.4.4",
|
"postgres": "^3.4.4",
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# @llamaindex/autotool
|
# @llamaindex/autotool
|
||||||
|
|
||||||
|
## 6.0.3
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
|
||||||
|
## 6.0.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 6.0.1
|
## 6.0.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,5 +1,20 @@
|
|||||||
# @llamaindex/autotool-01-node-example
|
# @llamaindex/autotool-01-node-example
|
||||||
|
|
||||||
|
## 0.0.84
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
- @llamaindex/autotool@6.0.3
|
||||||
|
|
||||||
|
## 0.0.83
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
- @llamaindex/autotool@6.0.2
|
||||||
|
|
||||||
## 0.0.82
|
## 0.0.82
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -13,5 +13,5 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
|
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
|
||||||
},
|
},
|
||||||
"version": "0.0.82"
|
"version": "0.0.84"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,20 @@
|
|||||||
# @llamaindex/autotool-02-next-example
|
# @llamaindex/autotool-02-next-example
|
||||||
|
|
||||||
|
## 0.1.128
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
- @llamaindex/autotool@6.0.3
|
||||||
|
|
||||||
|
## 0.1.127
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
- @llamaindex/autotool@6.0.2
|
||||||
|
|
||||||
## 0.1.126
|
## 0.1.126
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/autotool-02-next-example",
|
"name": "@llamaindex/autotool-02-next-example",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.1.126",
|
"version": "0.1.128",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
"dotenv": "^16.3.1",
|
"dotenv": "^16.3.1",
|
||||||
"llamaindex": "workspace:*",
|
"llamaindex": "workspace:*",
|
||||||
"lucide-react": "^0.460.0",
|
"lucide-react": "^0.460.0",
|
||||||
"next": "15.0.3",
|
"next": "15.1.7",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1",
|
"react-dom": "^18.3.1",
|
||||||
"react-markdown": "^9.0.1",
|
"react-markdown": "^9.0.1",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
|
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
|
||||||
"directory": "packages/autotool"
|
"directory": "packages/autotool"
|
||||||
},
|
},
|
||||||
"version": "6.0.1",
|
"version": "6.0.3",
|
||||||
"description": "auto transpile your JS function to LLM Agent compatible",
|
"description": "auto transpile your JS function to LLM Agent compatible",
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
"@types/node": "^22.9.0",
|
"@types/node": "^22.9.0",
|
||||||
"bunchee": "6.3.4",
|
"bunchee": "6.3.4",
|
||||||
"llamaindex": "workspace:*",
|
"llamaindex": "workspace:*",
|
||||||
"next": "15.0.3",
|
"next": "15.1.7",
|
||||||
"rollup": "^4.28.1",
|
"rollup": "^4.28.1",
|
||||||
"tsx": "^4.19.0",
|
"tsx": "^4.19.0",
|
||||||
"typescript": "^5.7.2",
|
"typescript": "^5.7.2",
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# @llamaindex/cloud
|
# @llamaindex/cloud
|
||||||
|
|
||||||
|
## 3.0.3
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
|
## 3.0.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- c902fcb: chore: bump llamacloud openapi
|
||||||
|
|
||||||
## 3.0.1
|
## 3.0.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
+4290
-1580
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/cloud",
|
"name": "@llamaindex/cloud",
|
||||||
"version": "3.0.1",
|
"version": "3.0.3",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { fs, getEnv, path } from "@llamaindex/env";
|
|||||||
import {
|
import {
|
||||||
type Body_upload_file_api_v1_parsing_upload_post,
|
type Body_upload_file_api_v1_parsing_upload_post,
|
||||||
type ParserLanguages,
|
type ParserLanguages,
|
||||||
|
type ParsingMode,
|
||||||
getJobApiV1ParsingJobJobIdGet,
|
getJobApiV1ParsingJobJobIdGet,
|
||||||
getJobImageResultApiV1ParsingJobJobIdResultImageNameGet,
|
getJobImageResultApiV1ParsingJobJobIdResultImageNameGet,
|
||||||
getJobJsonResultApiV1ParsingJobJobIdResultJsonGet,
|
getJobJsonResultApiV1ParsingJobJobIdResultJsonGet,
|
||||||
@@ -127,6 +128,26 @@ export class LlamaParseReader extends FileReader {
|
|||||||
|
|
||||||
readonly #client: Client;
|
readonly #client: Client;
|
||||||
|
|
||||||
|
output_tables_as_HTML: boolean = false;
|
||||||
|
input_s3_region?: string | undefined;
|
||||||
|
output_s3_region?: string | undefined;
|
||||||
|
preserve_layout_alignment_across_pages?: boolean | undefined;
|
||||||
|
spreadsheet_extract_sub_tables?: boolean | undefined;
|
||||||
|
formatting_instruction?: string | undefined;
|
||||||
|
parse_mode?: ParsingMode | undefined;
|
||||||
|
system_prompt?: string | undefined;
|
||||||
|
system_prompt_append?: string | undefined;
|
||||||
|
user_prompt?: string | undefined;
|
||||||
|
job_timeout_in_seconds?: number | undefined;
|
||||||
|
job_timeout_extra_time_per_page_in_seconds?: number | undefined;
|
||||||
|
strict_mode_image_extraction?: boolean | undefined;
|
||||||
|
strict_mode_image_ocr?: boolean | undefined;
|
||||||
|
strict_mode_reconstruction?: boolean | undefined;
|
||||||
|
strict_mode_buggy_font?: boolean | undefined;
|
||||||
|
ignore_document_elements_for_layout_detection?: boolean | undefined;
|
||||||
|
complemental_formatting_instruction?: string | undefined;
|
||||||
|
content_guideline_instruction?: string | undefined;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
params: Partial<Omit<LlamaParseReader, "language" | "apiKey">> & {
|
params: Partial<Omit<LlamaParseReader, "language" | "apiKey">> & {
|
||||||
language?: ParserLanguages | ParserLanguages[] | undefined;
|
language?: ParserLanguages | ParserLanguages[] | undefined;
|
||||||
@@ -252,6 +273,29 @@ export class LlamaParseReader extends FileReader {
|
|||||||
structured_output_json_schema_name:
|
structured_output_json_schema_name:
|
||||||
this.structured_output_json_schema_name,
|
this.structured_output_json_schema_name,
|
||||||
extract_layout: this.extract_layout,
|
extract_layout: this.extract_layout,
|
||||||
|
output_tables_as_HTML: this.output_tables_as_HTML,
|
||||||
|
input_s3_region: this.input_s3_region,
|
||||||
|
output_s3_region: this.output_s3_region,
|
||||||
|
preserve_layout_alignment_across_pages:
|
||||||
|
this.preserve_layout_alignment_across_pages,
|
||||||
|
spreadsheet_extract_sub_tables: this.spreadsheet_extract_sub_tables,
|
||||||
|
formatting_instruction: this.formatting_instruction,
|
||||||
|
parse_mode: this.parse_mode,
|
||||||
|
system_prompt: this.system_prompt,
|
||||||
|
system_prompt_append: this.system_prompt_append,
|
||||||
|
user_prompt: this.user_prompt,
|
||||||
|
job_timeout_in_seconds: this.job_timeout_in_seconds,
|
||||||
|
job_timeout_extra_time_per_page_in_seconds:
|
||||||
|
this.job_timeout_extra_time_per_page_in_seconds,
|
||||||
|
strict_mode_image_extraction: this.strict_mode_image_extraction,
|
||||||
|
strict_mode_image_ocr: this.strict_mode_image_ocr,
|
||||||
|
strict_mode_reconstruction: this.strict_mode_reconstruction,
|
||||||
|
strict_mode_buggy_font: this.strict_mode_buggy_font,
|
||||||
|
ignore_document_elements_for_layout_detection:
|
||||||
|
this.ignore_document_elements_for_layout_detection,
|
||||||
|
complemental_formatting_instruction:
|
||||||
|
this.complemental_formatting_instruction,
|
||||||
|
content_guideline_instruction: this.content_guideline_instruction,
|
||||||
} satisfies {
|
} satisfies {
|
||||||
[Key in keyof Body_upload_file_api_v1_parsing_upload_post]-?:
|
[Key in keyof Body_upload_file_api_v1_parsing_upload_post]-?:
|
||||||
| Body_upload_file_api_v1_parsing_upload_post[Key]
|
| Body_upload_file_api_v1_parsing_upload_post[Key]
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/community
|
# @llamaindex/community
|
||||||
|
|
||||||
|
## 0.0.84
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.83
|
## 0.0.83
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/community",
|
"name": "@llamaindex/community",
|
||||||
"description": "Community package for LlamaIndexTS",
|
"description": "Community package for LlamaIndexTS",
|
||||||
"version": "0.0.83",
|
"version": "0.0.84",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/type/index.d.ts",
|
"types": "dist/type/index.d.ts",
|
||||||
"main": "dist/cjs/index.js",
|
"main": "dist/cjs/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
# @llamaindex/core
|
# @llamaindex/core
|
||||||
|
|
||||||
|
## 0.5.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- d952e68: Refine synthesizer will now return an empty string as the response if an empty array of source nodes were provided. Before it would throw an internal error converting undefined to ReadableStream.
|
||||||
|
|
||||||
## 0.5.1
|
## 0.5.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/core",
|
"name": "@llamaindex/core",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.5.1",
|
"version": "0.5.2",
|
||||||
"description": "LlamaIndex Core Module",
|
"description": "LlamaIndex Core Module",
|
||||||
"exports": {
|
"exports": {
|
||||||
"./agent": {
|
"./agent": {
|
||||||
|
|||||||
@@ -116,7 +116,14 @@ class Refine extends BaseSynthesizer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// fixme: no source nodes provided, cannot fix right now due to lack of context
|
if (response === undefined) {
|
||||||
|
response = stream
|
||||||
|
? (async function* () {
|
||||||
|
yield "";
|
||||||
|
})()
|
||||||
|
: "";
|
||||||
|
}
|
||||||
|
|
||||||
if (typeof response === "string") {
|
if (typeof response === "string") {
|
||||||
return EngineResponse.fromResponse(response, false, nodes);
|
return EngineResponse.fromResponse(response, false, nodes);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -66,9 +66,9 @@ describe("ChatMemoryBuffer", () => {
|
|||||||
expect(result).toEqual([...inputMessages, ...storedMessages]);
|
expect(result).toEqual([...inputMessages, ...storedMessages]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("getMessages throws error when initial token count exceeds limit", () => {
|
test("getMessages throws error when initial token count exceeds limit", async () => {
|
||||||
const buffer = new ChatMemoryBuffer({ tokenLimit: 10 });
|
const buffer = new ChatMemoryBuffer({ tokenLimit: 10 });
|
||||||
expect(async () => buffer.getMessages(undefined, 20)).rejects.toThrow(
|
await expect(async () => buffer.getMessages(undefined, 20)).rejects.toThrow(
|
||||||
"Initial token count exceeds token limit",
|
"Initial token count exceeds token limit",
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { describe, expect, test, vi } from "vitest";
|
import { beforeEach, describe, expect, test, vi } from "vitest";
|
||||||
import type { LLMMetadata } from "../../llms/dist/index.js";
|
import type { LLMMetadata } from "../../llms/dist/index.js";
|
||||||
import { getResponseSynthesizer } from "../../response-synthesizers/dist/index.js";
|
import { getResponseSynthesizer } from "../../response-synthesizers/dist/index.js";
|
||||||
import { Document } from "../../schema/dist/index.js";
|
import { Document } from "../../schema/dist/index.js";
|
||||||
@@ -10,26 +10,69 @@ const mockLllm = () => ({
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
function* gen() {
|
return {
|
||||||
// yield a few times to make sure each chunk has the sourceNodes
|
[Symbol.asyncIterator]: function* gen() {
|
||||||
yield response;
|
// yield a few times to make sure each chunk has the sourceNodes
|
||||||
yield response;
|
yield response;
|
||||||
yield response;
|
yield response;
|
||||||
}
|
yield response;
|
||||||
|
},
|
||||||
return gen();
|
};
|
||||||
}),
|
}),
|
||||||
chat: vi.fn(),
|
chat: vi.fn(),
|
||||||
metadata: {} as unknown as LLMMetadata,
|
metadata: {} as unknown as LLMMetadata,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("refine response synthesizer", () => {
|
||||||
|
let synthesizer: ReturnType<typeof getResponseSynthesizer<"refine">>;
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
|
const isAsyncIterable = (obj: any): boolean =>
|
||||||
|
obj[Symbol.asyncIterator] !== undefined;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
synthesizer = getResponseSynthesizer("refine", {
|
||||||
|
llm: mockLllm(),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("getResponse", () => {
|
||||||
|
test("should return async iterable of EngineResponse when stream is true and sourceNodes are empty", async () => {
|
||||||
|
const response = await synthesizer.getResponse(
|
||||||
|
"unimportant query",
|
||||||
|
[],
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(isAsyncIterable(response)).toBe(true);
|
||||||
|
for await (const chunk of response) {
|
||||||
|
expect(chunk.message.content).toEqual("");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test("should return non async iterable when stream is false and sourceNodes are empty", async () => {
|
||||||
|
const response = await synthesizer.getResponse(
|
||||||
|
"unimportant query",
|
||||||
|
[],
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(isAsyncIterable(response)).toBe(false);
|
||||||
|
expect(response.message.content).toEqual("");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe("compact and refine response synthesizer", () => {
|
describe("compact and refine response synthesizer", () => {
|
||||||
|
let synthesizer: ReturnType<typeof getResponseSynthesizer<"compact">>;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
synthesizer = getResponseSynthesizer("compact", {
|
||||||
|
llm: mockLllm(),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe("synthesize", () => {
|
describe("synthesize", () => {
|
||||||
test("should return original sourceNodes with response when stream = false", async () => {
|
test("should return original sourceNodes with response when stream = false", async () => {
|
||||||
const synthesizer = getResponseSynthesizer("compact", {
|
|
||||||
llm: mockLllm(),
|
|
||||||
});
|
|
||||||
|
|
||||||
const sourceNode = { node: new Document({}), score: 1 };
|
const sourceNode = { node: new Document({}), score: 1 };
|
||||||
|
|
||||||
const response = await synthesizer.synthesize(
|
const response = await synthesizer.synthesize(
|
||||||
@@ -44,10 +87,6 @@ describe("compact and refine response synthesizer", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("should return original sourceNodes with response when stream = true", async () => {
|
test("should return original sourceNodes with response when stream = true", async () => {
|
||||||
const synthesizer = getResponseSynthesizer("compact", {
|
|
||||||
llm: mockLllm(),
|
|
||||||
});
|
|
||||||
|
|
||||||
const sourceNode = { node: new Document({}), score: 1 };
|
const sourceNode = { node: new Document({}), score: 1 };
|
||||||
|
|
||||||
const response = await synthesizer.synthesize(
|
const response = await synthesizer.synthesize(
|
||||||
|
|||||||
@@ -1,5 +1,18 @@
|
|||||||
# @llamaindex/experimental
|
# @llamaindex/experimental
|
||||||
|
|
||||||
|
## 0.0.153
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- llamaindex@0.9.3
|
||||||
|
|
||||||
|
## 0.0.152
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [88d776f]
|
||||||
|
- llamaindex@0.9.2
|
||||||
|
|
||||||
## 0.0.151
|
## 0.0.151
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/experimental",
|
"name": "@llamaindex/experimental",
|
||||||
"description": "Experimental package for LlamaIndexTS",
|
"description": "Experimental package for LlamaIndexTS",
|
||||||
"version": "0.0.151",
|
"version": "0.0.153",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/type/index.d.ts",
|
"types": "dist/type/index.d.ts",
|
||||||
"main": "dist/cjs/index.js",
|
"main": "dist/cjs/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
# llamaindex
|
# llamaindex
|
||||||
|
|
||||||
|
## 0.9.3
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
- @llamaindex/cloud@3.0.3
|
||||||
|
- @llamaindex/node-parser@1.0.2
|
||||||
|
- @llamaindex/openai@0.1.54
|
||||||
|
|
||||||
|
## 0.9.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- 88d776f: fix: enhance error message in llamacloud
|
||||||
|
- Updated dependencies [c902fcb]
|
||||||
|
- @llamaindex/cloud@3.0.2
|
||||||
|
|
||||||
## 0.9.1
|
## 0.9.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "llamaindex",
|
"name": "llamaindex",
|
||||||
"version": "0.9.1",
|
"version": "0.9.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
@@ -31,6 +31,11 @@ export function initService({ apiKey, baseUrl }: ClientParams = {}) {
|
|||||||
request.headers.set("Authorization", `Bearer ${token}`);
|
request.headers.set("Authorization", `Bearer ${token}`);
|
||||||
return request;
|
return request;
|
||||||
});
|
});
|
||||||
|
client.interceptors.error.use((error) => {
|
||||||
|
throw new Error(
|
||||||
|
`LlamaCloud API request failed. Error details: ${JSON.stringify(error)}`,
|
||||||
|
);
|
||||||
|
});
|
||||||
if (!token) {
|
if (!token) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"API Key is required for LlamaCloudIndex. Please pass the apiKey parameter",
|
"API Key is required for LlamaCloudIndex. Please pass the apiKey parameter",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/node-parser
|
# @llamaindex/node-parser
|
||||||
|
|
||||||
|
## 1.0.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 1.0.1
|
## 1.0.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/node-parser",
|
"name": "@llamaindex/node-parser",
|
||||||
"version": "1.0.1",
|
"version": "1.0.2",
|
||||||
"description": "Node parser for LlamaIndex",
|
"description": "Node parser for LlamaIndex",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": {
|
"exports": {
|
||||||
|
|||||||
@@ -1,5 +1,24 @@
|
|||||||
# @llamaindex/anthropic
|
# @llamaindex/anthropic
|
||||||
|
|
||||||
|
## 0.2.0
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- 3564244: Add support for claude 3.7 thinking (and set default temperature to 1)
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- a9c6144: Stream thinking tokens
|
||||||
|
- 3564244: add support for claude 3.7
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
|
## 0.1.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- be74207: fix: dont add empty text block to tool call
|
||||||
|
|
||||||
## 0.1.1
|
## 0.1.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/anthropic",
|
"name": "@llamaindex/anthropic",
|
||||||
"description": "Anthropic Adapter for LlamaIndex",
|
"description": "Anthropic Adapter for LlamaIndex",
|
||||||
"version": "0.1.1",
|
"version": "0.2.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
"vitest": "^2.1.5"
|
"vitest": "^2.1.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@anthropic-ai/sdk": "0.32.1",
|
"@anthropic-ai/sdk": "0.37.0",
|
||||||
"@llamaindex/core": "workspace:*",
|
"@llamaindex/core": "workspace:*",
|
||||||
"@llamaindex/env": "workspace:*",
|
"@llamaindex/env": "workspace:*",
|
||||||
"remeda": "^2.17.3"
|
"remeda": "^2.17.3"
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import type {
|
|||||||
} from "@anthropic-ai/sdk/resources/beta/index";
|
} from "@anthropic-ai/sdk/resources/beta/index";
|
||||||
import type { TextBlock } from "@anthropic-ai/sdk/resources/index";
|
import type { TextBlock } from "@anthropic-ai/sdk/resources/index";
|
||||||
import type {
|
import type {
|
||||||
|
MessageCreateParams,
|
||||||
|
MessageCreateParamsBase,
|
||||||
MessageParam,
|
MessageParam,
|
||||||
Model,
|
Model,
|
||||||
Tool,
|
Tool,
|
||||||
@@ -102,10 +104,17 @@ export const ALL_AVAILABLE_V3_5_MODELS = {
|
|||||||
"claude-3-5-haiku-20241022": { contextWindow: 200000 },
|
"claude-3-5-haiku-20241022": { contextWindow: 200000 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const ALL_AVAILABLE_V3_7_MODELS = {
|
||||||
|
"claude-3-7-sonnet": { contextWindow: 200000 },
|
||||||
|
"claude-3-7-sonnet-20250219": { contextWindow: 200000 },
|
||||||
|
"claude-3-7-sonnet-latest": { contextWindow: 200000 },
|
||||||
|
};
|
||||||
|
|
||||||
export const ALL_AVAILABLE_ANTHROPIC_MODELS = {
|
export const ALL_AVAILABLE_ANTHROPIC_MODELS = {
|
||||||
...ALL_AVAILABLE_ANTHROPIC_LEGACY_MODELS,
|
...ALL_AVAILABLE_ANTHROPIC_LEGACY_MODELS,
|
||||||
...ALL_AVAILABLE_V3_MODELS,
|
...ALL_AVAILABLE_V3_MODELS,
|
||||||
...ALL_AVAILABLE_V3_5_MODELS,
|
...ALL_AVAILABLE_V3_5_MODELS,
|
||||||
|
...ALL_AVAILABLE_V3_7_MODELS,
|
||||||
} satisfies {
|
} satisfies {
|
||||||
[key in Model]: { contextWindow: number };
|
[key in Model]: { contextWindow: number };
|
||||||
};
|
};
|
||||||
@@ -115,11 +124,16 @@ const AVAILABLE_ANTHROPIC_MODELS_WITHOUT_DATE: { [key: string]: string } = {
|
|||||||
"claude-3-sonnet": "claude-3-sonnet-20240229",
|
"claude-3-sonnet": "claude-3-sonnet-20240229",
|
||||||
"claude-3-haiku": "claude-3-haiku-20240307",
|
"claude-3-haiku": "claude-3-haiku-20240307",
|
||||||
"claude-3-5-sonnet": "claude-3-5-sonnet-20240620",
|
"claude-3-5-sonnet": "claude-3-5-sonnet-20240620",
|
||||||
|
"claude-3-7-sonnet": "claude-3-7-sonnet-20250219",
|
||||||
} as { [key in keyof typeof ALL_AVAILABLE_ANTHROPIC_MODELS]: string };
|
} as { [key in keyof typeof ALL_AVAILABLE_ANTHROPIC_MODELS]: string };
|
||||||
|
|
||||||
export type AnthropicAdditionalChatOptions = object;
|
export type AnthropicAdditionalChatOptions = Pick<
|
||||||
|
MessageCreateParamsBase,
|
||||||
|
"thinking"
|
||||||
|
>;
|
||||||
export type AnthropicToolCallLLMMessageOptions = ToolCallLLMMessageOptions & {
|
export type AnthropicToolCallLLMMessageOptions = ToolCallLLMMessageOptions & {
|
||||||
cache_control?: BetaCacheControlEphemeral | null;
|
cache_control?: BetaCacheControlEphemeral | null;
|
||||||
|
thinking?: string | undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
export class Anthropic extends ToolCallLLM<
|
export class Anthropic extends ToolCallLLM<
|
||||||
@@ -129,8 +143,9 @@ export class Anthropic extends ToolCallLLM<
|
|||||||
// Per completion Anthropic params
|
// Per completion Anthropic params
|
||||||
model: keyof typeof ALL_AVAILABLE_ANTHROPIC_MODELS | ({} & string);
|
model: keyof typeof ALL_AVAILABLE_ANTHROPIC_MODELS | ({} & string);
|
||||||
temperature: number;
|
temperature: number;
|
||||||
topP: number;
|
topP?: number | undefined;
|
||||||
maxTokens?: number | undefined;
|
maxTokens?: number | undefined;
|
||||||
|
additionalChatOptions?: AnthropicAdditionalChatOptions | undefined;
|
||||||
|
|
||||||
// Anthropic session params
|
// Anthropic session params
|
||||||
apiKey?: string | undefined;
|
apiKey?: string | undefined;
|
||||||
@@ -141,13 +156,14 @@ export class Anthropic extends ToolCallLLM<
|
|||||||
constructor(init?: Partial<Anthropic>) {
|
constructor(init?: Partial<Anthropic>) {
|
||||||
super();
|
super();
|
||||||
this.model = init?.model ?? "claude-3-opus";
|
this.model = init?.model ?? "claude-3-opus";
|
||||||
this.temperature = init?.temperature ?? 0.1;
|
this.temperature = init?.temperature ?? 1; // default in anthropic is 1
|
||||||
this.topP = init?.topP ?? 0.999; // Per Ben Mann
|
this.topP = init?.topP;
|
||||||
this.maxTokens = init?.maxTokens ?? undefined;
|
this.maxTokens = init?.maxTokens ?? undefined;
|
||||||
|
|
||||||
this.apiKey = init?.apiKey ?? undefined;
|
this.apiKey = init?.apiKey ?? undefined;
|
||||||
this.maxRetries = init?.maxRetries ?? 10;
|
this.maxRetries = init?.maxRetries ?? 10;
|
||||||
this.timeout = init?.timeout ?? 60 * 1000; // Default is 60 seconds
|
this.timeout = init?.timeout ?? 60 * 1000; // Default is 60 seconds
|
||||||
|
this.additionalChatOptions = init?.additionalChatOptions;
|
||||||
this.session =
|
this.session =
|
||||||
init?.session ??
|
init?.session ??
|
||||||
getAnthropicSession({
|
getAnthropicSession({
|
||||||
@@ -165,7 +181,7 @@ export class Anthropic extends ToolCallLLM<
|
|||||||
return {
|
return {
|
||||||
model: this.model,
|
model: this.model,
|
||||||
temperature: this.temperature,
|
temperature: this.temperature,
|
||||||
topP: this.topP,
|
topP: this.topP ?? 0, // XXX: topP needs to be returned but might be undefined for Anthropic
|
||||||
maxTokens: this.maxTokens,
|
maxTokens: this.maxTokens,
|
||||||
contextWindow:
|
contextWindow:
|
||||||
this.model in ALL_AVAILABLE_ANTHROPIC_MODELS
|
this.model in ALL_AVAILABLE_ANTHROPIC_MODELS
|
||||||
@@ -207,23 +223,26 @@ export class Anthropic extends ToolCallLLM<
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ("toolCall" in options) {
|
if ("toolCall" in options) {
|
||||||
const formattedMessage: MessageParam = {
|
const text = extractText(message.content);
|
||||||
role: "assistant",
|
|
||||||
content: [
|
|
||||||
{
|
|
||||||
type: "text" as const,
|
|
||||||
text: extractText(message.content),
|
|
||||||
},
|
|
||||||
...options.toolCall.map((tool) => ({
|
|
||||||
type: "tool_use" as const,
|
|
||||||
id: tool.id,
|
|
||||||
name: tool.name,
|
|
||||||
input: this.parseToolInput(tool.input),
|
|
||||||
})),
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
return formattedMessage;
|
const content: MessageParam["content"] = [];
|
||||||
|
if (text && text.trim().length > 0) {
|
||||||
|
// don't add empty text blocks
|
||||||
|
content.push({
|
||||||
|
type: "text" as const,
|
||||||
|
text: text,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
content.push(
|
||||||
|
...options.toolCall.map((tool) => ({
|
||||||
|
type: "tool_use" as const,
|
||||||
|
id: tool.id,
|
||||||
|
name: tool.name,
|
||||||
|
input: this.parseToolInput(tool.input),
|
||||||
|
})),
|
||||||
|
);
|
||||||
|
|
||||||
|
return { role: "assistant", content } satisfies MessageParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle tool results
|
// Handle tool results
|
||||||
@@ -362,8 +381,14 @@ export class Anthropic extends ToolCallLLM<
|
|||||||
@wrapLLMEvent
|
@wrapLLMEvent
|
||||||
async chat(
|
async chat(
|
||||||
params:
|
params:
|
||||||
| LLMChatParamsNonStreaming<AnthropicToolCallLLMMessageOptions>
|
| LLMChatParamsNonStreaming<
|
||||||
| LLMChatParamsStreaming<AnthropicToolCallLLMMessageOptions>,
|
AnthropicAdditionalChatOptions,
|
||||||
|
AnthropicToolCallLLMMessageOptions
|
||||||
|
>
|
||||||
|
| LLMChatParamsStreaming<
|
||||||
|
AnthropicAdditionalChatOptions,
|
||||||
|
AnthropicToolCallLLMMessageOptions
|
||||||
|
>,
|
||||||
): Promise<
|
): Promise<
|
||||||
| ChatResponse<AnthropicToolCallLLMMessageOptions>
|
| ChatResponse<AnthropicToolCallLLMMessageOptions>
|
||||||
| AsyncIterable<ChatResponseChunk<AnthropicToolCallLLMMessageOptions>>
|
| AsyncIterable<ChatResponseChunk<AnthropicToolCallLLMMessageOptions>>
|
||||||
@@ -404,28 +429,29 @@ export class Anthropic extends ToolCallLLM<
|
|||||||
anthropic = anthropic.beta.promptCaching;
|
anthropic = anthropic.beta.promptCaching;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stream) {
|
const apiParams: MessageCreateParams = {
|
||||||
if (tools) {
|
|
||||||
console.error("Tools are not supported in streaming mode");
|
|
||||||
}
|
|
||||||
return this.streamChat(
|
|
||||||
messages.filter((m) => m.role !== "system"),
|
|
||||||
systemPrompt,
|
|
||||||
anthropic,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const apiParams = {
|
|
||||||
model: this.getModelName(this.model),
|
model: this.getModelName(this.model),
|
||||||
messages: this.mergeConsecutiveMessages(
|
messages: this.mergeConsecutiveMessages(
|
||||||
this.formatMessages(messages.filter((m) => m.role !== "system")),
|
this.formatMessages(messages.filter((m) => m.role !== "system")),
|
||||||
),
|
),
|
||||||
max_tokens: this.maxTokens ?? 4096,
|
max_tokens: this.maxTokens ?? 4096,
|
||||||
temperature: this.temperature,
|
temperature: this.temperature,
|
||||||
top_p: this.topP,
|
...(this.topP ? { top_p: this.topP } : {}),
|
||||||
...(systemPrompt && { system: systemPrompt }),
|
...(systemPrompt && { system: systemPrompt }),
|
||||||
|
...Object.assign(
|
||||||
|
{},
|
||||||
|
this.additionalChatOptions,
|
||||||
|
params.additionalChatOptions,
|
||||||
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (stream) {
|
||||||
|
if (tools) {
|
||||||
|
console.error("Tools are not supported in streaming mode");
|
||||||
|
}
|
||||||
|
return this.streamChat(anthropic, apiParams);
|
||||||
|
}
|
||||||
|
|
||||||
if (tools?.length) {
|
if (tools?.length) {
|
||||||
Object.assign(apiParams, {
|
Object.assign(apiParams, {
|
||||||
tools: this.prepareToolsForAPI(tools),
|
tools: this.prepareToolsForAPI(tools),
|
||||||
@@ -442,7 +468,10 @@ export class Anthropic extends ToolCallLLM<
|
|||||||
raw: response,
|
raw: response,
|
||||||
message: {
|
message: {
|
||||||
content: response.content
|
content: response.content
|
||||||
.filter((content): content is TextBlock => content.type === "text")
|
.filter(
|
||||||
|
(content): content is TextBlock =>
|
||||||
|
content.type === "text" && content.text?.trim().length > 0,
|
||||||
|
)
|
||||||
.map((content) => ({
|
.map((content) => ({
|
||||||
type: "text" as const,
|
type: "text" as const,
|
||||||
text: content.text,
|
text: content.text,
|
||||||
@@ -466,36 +495,36 @@ export class Anthropic extends ToolCallLLM<
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected async *streamChat(
|
protected async *streamChat(
|
||||||
messages: ChatMessage<AnthropicToolCallLLMMessageOptions>[],
|
|
||||||
systemPrompt: string | Array<BetaTextBlockParam> | null,
|
|
||||||
anthropic: SDKAnthropic,
|
anthropic: SDKAnthropic,
|
||||||
|
params: MessageCreateParams,
|
||||||
): AsyncIterable<ChatResponseChunk<AnthropicToolCallLLMMessageOptions>> {
|
): AsyncIterable<ChatResponseChunk<AnthropicToolCallLLMMessageOptions>> {
|
||||||
const stream = await anthropic.messages.create({
|
const stream = await anthropic.messages.create({
|
||||||
model: this.getModelName(this.model),
|
...params,
|
||||||
messages: this.formatMessages(messages),
|
|
||||||
max_tokens: this.maxTokens ?? 4096,
|
|
||||||
temperature: this.temperature,
|
|
||||||
top_p: this.topP,
|
|
||||||
stream: true,
|
stream: true,
|
||||||
...(systemPrompt && { system: systemPrompt }),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
let idx_counter: number = 0;
|
let idx_counter: number = 0;
|
||||||
for await (const part of stream) {
|
for await (const part of stream) {
|
||||||
const content =
|
const textContent =
|
||||||
part.type === "content_block_delta"
|
part.type === "content_block_delta" && part.delta.type === "text_delta"
|
||||||
? part.delta.type === "text_delta"
|
? part.delta.text
|
||||||
? part.delta.text
|
|
||||||
: part.delta
|
|
||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
if (typeof content !== "string") continue;
|
const thinking =
|
||||||
|
part.type === "content_block_delta" &&
|
||||||
|
part.delta.type === "thinking_delta"
|
||||||
|
? part.delta.thinking
|
||||||
|
: undefined;
|
||||||
|
|
||||||
|
if (!textContent && !thinking) continue;
|
||||||
|
|
||||||
idx_counter++;
|
idx_counter++;
|
||||||
yield {
|
yield {
|
||||||
raw: part,
|
raw: part,
|
||||||
delta: content,
|
delta: textContent ?? "",
|
||||||
options: {},
|
options: {
|
||||||
|
thinking: thinking,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
# @llamaindex/clip
|
# @llamaindex/clip
|
||||||
|
|
||||||
|
## 0.0.38
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
- @llamaindex/openai@0.1.54
|
||||||
|
|
||||||
## 0.0.37
|
## 0.0.37
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/clip",
|
"name": "@llamaindex/clip",
|
||||||
"description": "Clip Embedding Adapter for LlamaIndex",
|
"description": "Clip Embedding Adapter for LlamaIndex",
|
||||||
"version": "0.0.37",
|
"version": "0.0.38",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
"main": "dist/index.cjs",
|
"main": "dist/index.cjs",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/cohere
|
# @llamaindex/cohere
|
||||||
|
|
||||||
|
## 0.0.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.6
|
## 0.0.6
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/cohere",
|
"name": "@llamaindex/cohere",
|
||||||
"description": "Cohere Adapter for LlamaIndex",
|
"description": "Cohere Adapter for LlamaIndex",
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
# @llamaindex/deepinfra
|
# @llamaindex/deepinfra
|
||||||
|
|
||||||
|
## 0.0.38
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
- @llamaindex/openai@0.1.54
|
||||||
|
|
||||||
## 0.0.37
|
## 0.0.37
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/deepinfra",
|
"name": "@llamaindex/deepinfra",
|
||||||
"description": "Deepinfra Adapter for LlamaIndex",
|
"description": "Deepinfra Adapter for LlamaIndex",
|
||||||
"version": "0.0.37",
|
"version": "0.0.38",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/google
|
# @llamaindex/google
|
||||||
|
|
||||||
|
## 0.0.9
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.8
|
## 0.0.8
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/google",
|
"name": "@llamaindex/google",
|
||||||
"description": "Google Adapter for LlamaIndex",
|
"description": "Google Adapter for LlamaIndex",
|
||||||
"version": "0.0.8",
|
"version": "0.0.9",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
# @llamaindex/groq
|
# @llamaindex/groq
|
||||||
|
|
||||||
|
## 0.0.53
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- @llamaindex/openai@0.1.54
|
||||||
|
|
||||||
## 0.0.52
|
## 0.0.52
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/groq",
|
"name": "@llamaindex/groq",
|
||||||
"description": "Groq Adapter for LlamaIndex",
|
"description": "Groq Adapter for LlamaIndex",
|
||||||
"version": "0.0.52",
|
"version": "0.0.53",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
# @llamaindex/huggingface
|
# @llamaindex/huggingface
|
||||||
|
|
||||||
|
## 0.0.38
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
- @llamaindex/openai@0.1.54
|
||||||
|
|
||||||
## 0.0.37
|
## 0.0.37
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/huggingface",
|
"name": "@llamaindex/huggingface",
|
||||||
"description": "Huggingface Adapter for LlamaIndex",
|
"description": "Huggingface Adapter for LlamaIndex",
|
||||||
"version": "0.0.37",
|
"version": "0.0.38",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
"main": "dist/index.cjs",
|
"main": "dist/index.cjs",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/mistral
|
# @llamaindex/mistral
|
||||||
|
|
||||||
|
## 0.0.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.6
|
## 0.0.6
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/mistral",
|
"name": "@llamaindex/mistral",
|
||||||
"description": "Mistral Adapter for LlamaIndex",
|
"description": "Mistral Adapter for LlamaIndex",
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/mixedbread
|
# @llamaindex/mixedbread
|
||||||
|
|
||||||
|
## 0.0.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.6
|
## 0.0.6
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/mixedbread",
|
"name": "@llamaindex/mixedbread",
|
||||||
"description": "Mixedbread Adapter for LlamaIndex",
|
"description": "Mixedbread Adapter for LlamaIndex",
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/ollama
|
# @llamaindex/ollama
|
||||||
|
|
||||||
|
## 0.0.42
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.41
|
## 0.0.41
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/ollama",
|
"name": "@llamaindex/ollama",
|
||||||
"description": "Ollama Adapter for LlamaIndex",
|
"description": "Ollama Adapter for LlamaIndex",
|
||||||
"version": "0.0.41",
|
"version": "0.0.42",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/openai
|
# @llamaindex/openai
|
||||||
|
|
||||||
|
## 0.1.54
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.1.53
|
## 0.1.53
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/openai",
|
"name": "@llamaindex/openai",
|
||||||
"description": "OpenAI Adapter for LlamaIndex",
|
"description": "OpenAI Adapter for LlamaIndex",
|
||||||
"version": "0.1.53",
|
"version": "0.1.54",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/portkey-ai
|
# @llamaindex/portkey-ai
|
||||||
|
|
||||||
|
## 0.0.35
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.34
|
## 0.0.34
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/portkey-ai",
|
"name": "@llamaindex/portkey-ai",
|
||||||
"description": "Portkey Adapter for LlamaIndex",
|
"description": "Portkey Adapter for LlamaIndex",
|
||||||
"version": "0.0.34",
|
"version": "0.0.35",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/replicate
|
# @llamaindex/replicate
|
||||||
|
|
||||||
|
## 0.0.35
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.34
|
## 0.0.34
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/replicate",
|
"name": "@llamaindex/replicate",
|
||||||
"description": "Replicate Adapter for LlamaIndex",
|
"description": "Replicate Adapter for LlamaIndex",
|
||||||
"version": "0.0.34",
|
"version": "0.0.35",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/astra
|
# @llamaindex/astra
|
||||||
|
|
||||||
|
## 0.0.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.6
|
## 0.0.6
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/astra",
|
"name": "@llamaindex/astra",
|
||||||
"description": "Astra Storage for LlamaIndex",
|
"description": "Astra Storage for LlamaIndex",
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/azure
|
# @llamaindex/azure
|
||||||
|
|
||||||
|
## 0.1.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.1.1
|
## 0.1.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/azure",
|
"name": "@llamaindex/azure",
|
||||||
"description": "Azure Storage for LlamaIndex",
|
"description": "Azure Storage for LlamaIndex",
|
||||||
"version": "0.1.1",
|
"version": "0.1.2",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/chroma
|
# @llamaindex/chroma
|
||||||
|
|
||||||
|
## 0.0.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.6
|
## 0.0.6
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/chroma",
|
"name": "@llamaindex/chroma",
|
||||||
"description": "Chroma Storage for LlamaIndex",
|
"description": "Chroma Storage for LlamaIndex",
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# @llamaindex/firestore
|
||||||
|
|
||||||
|
## 1.0.0
|
||||||
|
|
||||||
|
### Major Changes
|
||||||
|
|
||||||
|
- 5c026e8: Firestore vector store support for LlamaIndex
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "@llamaindex/firestore",
|
||||||
|
"description": "Firestore Storage for LlamaIndex",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"type": "module",
|
||||||
|
"main": "./dist/index.cjs",
|
||||||
|
"module": "./dist/index.js",
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"edge-light": {
|
||||||
|
"types": "./dist/index.edge-light.d.ts",
|
||||||
|
"default": "./dist/index.edge-light.js"
|
||||||
|
},
|
||||||
|
"workerd": {
|
||||||
|
"types": "./dist/index.edge-light.d.ts",
|
||||||
|
"default": "./dist/index.edge-light.js"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"types": "./dist/index.d.cts",
|
||||||
|
"default": "./dist/index.cjs"
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"types": "./dist/index.d.ts",
|
||||||
|
"default": "./dist/index.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"dist"
|
||||||
|
],
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/run-llama/LlamaIndexTS.git",
|
||||||
|
"directory": "packages/providers/storage/firestore"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "bunchee",
|
||||||
|
"dev": "bunchee --watch"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"bunchee": "6.3.4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@llamaindex/core": "workspace:*",
|
||||||
|
"@llamaindex/env": "workspace:*",
|
||||||
|
"@google-cloud/firestore": "^7.11.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,273 @@
|
|||||||
|
import {
|
||||||
|
CollectionReference,
|
||||||
|
FieldValue,
|
||||||
|
Filter,
|
||||||
|
Firestore,
|
||||||
|
type Settings,
|
||||||
|
type VectorQuery,
|
||||||
|
type WhereFilterOp,
|
||||||
|
} from "@google-cloud/firestore";
|
||||||
|
import type { BaseNode, Metadata } from "@llamaindex/core/schema";
|
||||||
|
import {
|
||||||
|
BaseVectorStore,
|
||||||
|
FilterOperator,
|
||||||
|
metadataDictToNode,
|
||||||
|
nodeToMetadata,
|
||||||
|
type MetadataFilter,
|
||||||
|
type MetadataFilters,
|
||||||
|
type VectorStoreBaseParams,
|
||||||
|
type VectorStoreQuery,
|
||||||
|
type VectorStoreQueryResult,
|
||||||
|
} from "@llamaindex/core/vector-store";
|
||||||
|
|
||||||
|
enum DistanceMeasure {
|
||||||
|
COSINE = "COSINE",
|
||||||
|
EUCLIDEAN = "EUCLIDEAN",
|
||||||
|
DOT_PRODUCT = "DOT_PRODUCT",
|
||||||
|
}
|
||||||
|
|
||||||
|
type FirestoreParams = {
|
||||||
|
collectionName: string;
|
||||||
|
client?: Firestore;
|
||||||
|
clientOptions?: {
|
||||||
|
credentials: Settings["credentials"];
|
||||||
|
projectId: string;
|
||||||
|
databaseId: string;
|
||||||
|
ignoreUndefinedProperties: boolean;
|
||||||
|
};
|
||||||
|
batchSize?: number;
|
||||||
|
embeddingKey?: string;
|
||||||
|
textKey?: string;
|
||||||
|
metadataKey?: string;
|
||||||
|
distanceMeasure?: DistanceMeasure;
|
||||||
|
customCollectionReference?: (
|
||||||
|
rootCollection: CollectionReference,
|
||||||
|
) => CollectionReference;
|
||||||
|
} & VectorStoreBaseParams;
|
||||||
|
|
||||||
|
const DEFAULT_BATCH_SIZE = 500;
|
||||||
|
|
||||||
|
function toFirestoreOperator(operator: FilterOperator): WhereFilterOp {
|
||||||
|
const operatorMap: Record<FilterOperator, WhereFilterOp> = {
|
||||||
|
[FilterOperator.EQ]: "==",
|
||||||
|
[FilterOperator.NE]: "!=",
|
||||||
|
[FilterOperator.GT]: ">",
|
||||||
|
[FilterOperator.GTE]: ">=",
|
||||||
|
[FilterOperator.LT]: "<",
|
||||||
|
[FilterOperator.LTE]: "<=",
|
||||||
|
[FilterOperator.IN]: "in",
|
||||||
|
[FilterOperator.NIN]: "not-in",
|
||||||
|
[FilterOperator.CONTAINS]: "array-contains",
|
||||||
|
[FilterOperator.TEXT_MATCH]: "==",
|
||||||
|
[FilterOperator.ANY]: "array-contains-any",
|
||||||
|
[FilterOperator.ALL]: "array-contains",
|
||||||
|
[FilterOperator.IS_EMPTY]: "==",
|
||||||
|
};
|
||||||
|
|
||||||
|
const firestoreOp = operatorMap[operator];
|
||||||
|
if (!firestoreOp) {
|
||||||
|
throw new Error(`Operator ${operator} not supported in Firestore.`);
|
||||||
|
}
|
||||||
|
return firestoreOp;
|
||||||
|
}
|
||||||
|
|
||||||
|
function toFirestoreFilter(filters: MetadataFilters): Filter | undefined {
|
||||||
|
if (!filters?.filters?.length) return undefined;
|
||||||
|
|
||||||
|
const firestoreFilters = filters.filters.map((filter: MetadataFilter) => {
|
||||||
|
const path = `${filter.key}`;
|
||||||
|
const operator = toFirestoreOperator(filter.operator as FilterOperator);
|
||||||
|
return Filter.where(path, operator, filter.value);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (firestoreFilters.length === 1) {
|
||||||
|
return firestoreFilters[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return filters.condition === "or"
|
||||||
|
? Filter.or(...firestoreFilters)
|
||||||
|
: Filter.and(...firestoreFilters);
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FirestoreVectorStore extends BaseVectorStore<Firestore> {
|
||||||
|
storesText: boolean = true;
|
||||||
|
isEmbeddingQuery?: boolean = false;
|
||||||
|
flatMetadata: boolean = true;
|
||||||
|
|
||||||
|
private firestoreClient: Firestore;
|
||||||
|
private collectionName: string;
|
||||||
|
private batchSize: number;
|
||||||
|
private embeddingKey: string = "embedding";
|
||||||
|
private metadataKey: string = "metadata";
|
||||||
|
private distanceMeasure: DistanceMeasure = DistanceMeasure.COSINE;
|
||||||
|
private customCollectionReference: (
|
||||||
|
rootCollection: CollectionReference,
|
||||||
|
) => CollectionReference;
|
||||||
|
|
||||||
|
constructor({
|
||||||
|
collectionName = "vector_store",
|
||||||
|
client,
|
||||||
|
clientOptions,
|
||||||
|
batchSize = DEFAULT_BATCH_SIZE,
|
||||||
|
distanceMeasure = DistanceMeasure.COSINE,
|
||||||
|
customCollectionReference,
|
||||||
|
...init
|
||||||
|
}: FirestoreParams) {
|
||||||
|
super(init);
|
||||||
|
this.collectionName = collectionName;
|
||||||
|
this.batchSize = batchSize;
|
||||||
|
this.distanceMeasure = distanceMeasure;
|
||||||
|
this.customCollectionReference =
|
||||||
|
customCollectionReference ?? ((rootCollection) => rootCollection);
|
||||||
|
|
||||||
|
if (client) {
|
||||||
|
this.firestoreClient = client;
|
||||||
|
} else {
|
||||||
|
if (!clientOptions) {
|
||||||
|
throw new Error("clientOptions are required");
|
||||||
|
}
|
||||||
|
if (!clientOptions.credentials) {
|
||||||
|
throw new Error("clientOptions.credentials are required");
|
||||||
|
}
|
||||||
|
if (!clientOptions.projectId) {
|
||||||
|
throw new Error("clientOptions.projectId is required");
|
||||||
|
}
|
||||||
|
this.firestoreClient = new Firestore({
|
||||||
|
credentials: clientOptions.credentials,
|
||||||
|
projectId: clientOptions.projectId,
|
||||||
|
databaseId: clientOptions?.databaseId,
|
||||||
|
ignoreUndefinedProperties:
|
||||||
|
clientOptions.ignoreUndefinedProperties ?? false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public client() {
|
||||||
|
return this.firestoreClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds nodes to the vector store
|
||||||
|
* @param {BaseNode<Metadata>[]} nodes - Array of nodes to add to the vector store
|
||||||
|
* @returns {Promise<string[]>} Array of node IDs that were added
|
||||||
|
*/
|
||||||
|
async add(nodes: BaseNode<Metadata>[]): Promise<string[]> {
|
||||||
|
const batch = this.firestoreClient.batch();
|
||||||
|
const collection = this.customCollectionReference(
|
||||||
|
this.firestoreClient.collection(this.collectionName),
|
||||||
|
);
|
||||||
|
|
||||||
|
const ids: string[] = [];
|
||||||
|
|
||||||
|
for (const node of nodes) {
|
||||||
|
const docRef = collection.doc(node.id_);
|
||||||
|
const metadata = nodeToMetadata(
|
||||||
|
node,
|
||||||
|
!this.storesText,
|
||||||
|
"text",
|
||||||
|
this.flatMetadata,
|
||||||
|
);
|
||||||
|
const entry = {
|
||||||
|
[this.embeddingKey]: FieldValue.vector(node.getEmbedding()),
|
||||||
|
[this.metadataKey]: metadata,
|
||||||
|
};
|
||||||
|
|
||||||
|
batch.set(docRef, entry, { merge: true });
|
||||||
|
|
||||||
|
ids.push(node.id_);
|
||||||
|
|
||||||
|
// Commit batch when it reaches the size limit
|
||||||
|
if (ids.length % this.batchSize === 0) {
|
||||||
|
await batch.commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit any remaining documents
|
||||||
|
if (nodes.length % this.batchSize !== 0) {
|
||||||
|
await batch.commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes all nodes from the vector store that match the given filename
|
||||||
|
* @param {string} fileName - Name of the file whose nodes should be deleted
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
async delete(fileName: string): Promise<void> {
|
||||||
|
const collection = this.customCollectionReference(
|
||||||
|
this.firestoreClient.collection(this.collectionName),
|
||||||
|
);
|
||||||
|
const snapshot = await collection
|
||||||
|
.where(`${this.metadataKey}.file_name`, "==", fileName)
|
||||||
|
.get();
|
||||||
|
|
||||||
|
const batch = this.firestoreClient.batch();
|
||||||
|
snapshot.docs.forEach((doc) => {
|
||||||
|
batch.delete(doc.ref);
|
||||||
|
});
|
||||||
|
await batch.commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Queries the vector store for similar nodes
|
||||||
|
* @param {VectorStoreQuery} query - Query parameters including queryStr or queryEmbedding, filters, and similarityTopK
|
||||||
|
* @param {object} [_options] - Optional parameters for the query
|
||||||
|
* @returns {Promise<VectorStoreQueryResult>} Query results containing matching nodes, their similarities, and IDs
|
||||||
|
* @throws {Error} When neither queryEmbedding nor queryStr is provided
|
||||||
|
*/
|
||||||
|
async query(
|
||||||
|
query: VectorStoreQuery,
|
||||||
|
_options?: object,
|
||||||
|
): Promise<VectorStoreQueryResult> {
|
||||||
|
if (!query.queryEmbedding) {
|
||||||
|
throw new Error("No query embedding provided");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get documents with filters if any
|
||||||
|
let baseQuery = this.firestoreClient.collection(this.collectionName);
|
||||||
|
baseQuery = this.customCollectionReference(baseQuery);
|
||||||
|
if (query.filters) {
|
||||||
|
const filter = toFirestoreFilter(query.filters);
|
||||||
|
if (filter) {
|
||||||
|
baseQuery = baseQuery.where(filter) as CollectionReference;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use Firestore's native vector search
|
||||||
|
const vectorQuery = baseQuery.findNearest({
|
||||||
|
vectorField: this.embeddingKey,
|
||||||
|
queryVector: query.queryEmbedding,
|
||||||
|
limit: query.similarityTopK,
|
||||||
|
distanceMeasure: this.distanceMeasure,
|
||||||
|
distanceResultField: "vector_distance",
|
||||||
|
}) as VectorQuery;
|
||||||
|
|
||||||
|
const snapshot = await vectorQuery.get();
|
||||||
|
|
||||||
|
// Convert results to VectorStoreQueryResult format
|
||||||
|
const topKIds: string[] = [];
|
||||||
|
const topKNodes: BaseNode[] = [];
|
||||||
|
const topKSimilarities: number[] = [];
|
||||||
|
|
||||||
|
snapshot.forEach((doc) => {
|
||||||
|
const distance = doc.get("vector_distance") as number;
|
||||||
|
// Convert distance to similarity score (1 - normalized distance)
|
||||||
|
const similarity =
|
||||||
|
this.distanceMeasure === DistanceMeasure.DOT_PRODUCT
|
||||||
|
? distance // For dot product, higher is more similar
|
||||||
|
: 1 / (1 + distance); // For EUCLIDEAN and COSINE, lower distance means more similar
|
||||||
|
|
||||||
|
topKIds.push(doc.id);
|
||||||
|
topKNodes.push(metadataDictToNode(doc.get(this.metadataKey)));
|
||||||
|
topKSimilarities.push(similarity);
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
nodes: topKNodes,
|
||||||
|
similarities: topKSimilarities,
|
||||||
|
ids: topKIds,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export * from "./FirestoreVectorStore";
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"extends": "../../../../tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "ESNext",
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"outDir": "./lib",
|
||||||
|
"tsBuildInfoFile": "./lib/.tsbuildinfo"
|
||||||
|
},
|
||||||
|
"include": ["./src"],
|
||||||
|
"references": [
|
||||||
|
{
|
||||||
|
"path": "../../../core/tsconfig.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "../../../env/tsconfig.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/milvus
|
# @llamaindex/milvus
|
||||||
|
|
||||||
|
## 0.1.2
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.1.1
|
## 0.1.1
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/milvus",
|
"name": "@llamaindex/milvus",
|
||||||
"description": "Milvus Storage for LlamaIndex",
|
"description": "Milvus Storage for LlamaIndex",
|
||||||
"version": "0.1.1",
|
"version": "0.1.2",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/mongodb
|
# @llamaindex/mongodb
|
||||||
|
|
||||||
|
## 0.0.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.6
|
## 0.0.6
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/mongodb",
|
"name": "@llamaindex/mongodb",
|
||||||
"description": "MongoDB Storage for LlamaIndex",
|
"description": "MongoDB Storage for LlamaIndex",
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/pinecone
|
# @llamaindex/pinecone
|
||||||
|
|
||||||
|
## 0.0.7
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.6
|
## 0.0.6
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@llamaindex/pinecone",
|
"name": "@llamaindex/pinecone",
|
||||||
"description": "Pinecone Storage for LlamaIndex",
|
"description": "Pinecone Storage for LlamaIndex",
|
||||||
"version": "0.0.6",
|
"version": "0.0.7",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.js",
|
"module": "./dist/index.js",
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @llamaindex/postgres
|
# @llamaindex/postgres
|
||||||
|
|
||||||
|
## 0.0.35
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [d952e68]
|
||||||
|
- @llamaindex/core@0.5.2
|
||||||
|
|
||||||
## 0.0.34
|
## 0.0.34
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user