Compare commits

...

16 Commits

Author SHA1 Message Date
github-actions[bot] 510191cb5d Release 0.8.24 (#1531)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-30 06:05:47 -08:00
Jingyi Zhao 7934ade092 fix: add obsidian reader to index (#1533) 2024-11-30 01:29:45 -08:00
Jingyi Zhao a6c1eab762 feat: data connector for obsidian note taking app (#1529) 2024-11-29 22:39:59 -08:00
crisjy 515f2c1e3d feat: add AzureCosmosDBMongoVectorStore (#1528) 2024-11-28 17:53:09 -08:00
github-actions[bot] dc85649ead Release 0.8.23 (#1526)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-26 17:41:29 -08:00
Alex Yang d2b2722a30 fix: switch tokenizer in cloudflare (#1525) 2024-11-26 15:42:20 -08:00
github-actions[bot] a2bbd62399 Release 0.8.22 (#1520)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-21 23:17:45 -08:00
Alex Yang 969365ca0a feat: add cloudflare worker full example (#1521) 2024-11-21 23:05:40 -08:00
fatmelon 819af453d6 feat: add Azure CosmosDB Mongo vCore Chat store (#1516)
Co-authored-by: root <root@CPC-yangq-FRSGK>
2024-11-21 21:25:41 -08:00
github-actions[bot] 9db36f7384 Release 0.8.21 (#1513)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-19 18:18:35 -08:00
fatmelon efa221116f feat: integrate with azure cosmos db mongo vCore (#1500)
Co-authored-by: root <root@CPC-yangq-FRSGK>
Co-authored-by: Alex Yang <himself65@outlook.com>
2024-11-19 17:58:25 -08:00
Alex Yang 83c3897539 fix: pinecone vector store (#1512) 2024-11-19 17:51:45 -08:00
github-actions[bot] e1cbce1f80 Release 0.8.20 (#1511)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-19 10:01:18 -08:00
Madarco 02b22da384 fix: supports vercel bundling (#1509)
Co-authored-by: Alex Yang <himself65@outlook.com>
2024-11-19 09:52:56 -08:00
github-actions[bot] 0aa61db547 Release 0.8.19 (#1507)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-19 00:01:48 -08:00
Alex Yang 90d265cf47 chore: bump version (#1505) 2024-11-18 18:39:13 -08:00
96 changed files with 5419 additions and 2903 deletions
+42
View File
@@ -1,5 +1,47 @@
# docs
## 0.0.129
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.0.128
### Patch Changes
- llamaindex@0.8.23
## 0.0.127
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
## 0.0.126
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.0.125
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.0.124
### Patch Changes
- Updated dependencies [90d265c]
- llamaindex@0.8.19
## 0.0.123
### Patch Changes
+8 -8
View File
@@ -1,6 +1,6 @@
{
"name": "docs",
"version": "0.0.123",
"version": "0.0.129",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
@@ -15,23 +15,23 @@
"typecheck": "tsc"
},
"dependencies": {
"@docusaurus/core": "3.6.0",
"@docusaurus/remark-plugin-npm2yarn": "3.6.0",
"@docusaurus/core": "3.6.1",
"@docusaurus/remark-plugin-npm2yarn": "3.6.1",
"@llamaindex/examples": "workspace:*",
"@mdx-js/react": "^3.1.0",
"clsx": "^2.1.1",
"llamaindex": "workspace:*",
"postcss": "^8.4.47",
"postcss": "^8.4.49",
"prism-react-renderer": "^2.4.0",
"raw-loader": "^4.0.2",
"react": "^18.3.1",
"react-dom": "18.3.1"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "3.6.0",
"@docusaurus/preset-classic": "3.6.0",
"@docusaurus/theme-classic": "3.6.0",
"@docusaurus/types": "3.6.0",
"@docusaurus/module-type-aliases": "3.6.1",
"@docusaurus/preset-classic": "3.6.1",
"@docusaurus/theme-classic": "3.6.1",
"@docusaurus/types": "3.6.1",
"@tsconfig/docusaurus": "2.0.3",
"@types/node": "^22.9.0",
"docusaurus-plugin-typedoc": "1.0.5",
+57
View File
@@ -1,5 +1,62 @@
# @llamaindex/doc
## 0.0.27
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.0.26
### Patch Changes
- @llamaindex/cloud@2.0.15
- @llamaindex/core@0.4.15
- llamaindex@0.8.23
- @llamaindex/node-parser@0.0.16
- @llamaindex/openai@0.1.40
- @llamaindex/readers@1.0.17
## 0.0.25
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
- @llamaindex/cloud@2.0.14
- @llamaindex/core@0.4.14
- @llamaindex/node-parser@0.0.15
- @llamaindex/openai@0.1.39
- @llamaindex/readers@1.0.16
## 0.0.24
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.0.23
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.0.22
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/cloud@2.0.13
- @llamaindex/core@0.4.13
- llamaindex@0.8.19
- @llamaindex/node-parser@0.0.14
- @llamaindex/readers@1.0.15
- @llamaindex/openai@0.1.38
## 0.0.21
### Patch Changes
+24 -24
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/doc",
"version": "0.0.21",
"version": "0.0.27",
"private": true,
"scripts": {
"build": "pnpm run build:docs && next build",
@@ -12,7 +12,7 @@
},
"dependencies": {
"@icons-pack/react-simple-icons": "^10.1.0",
"@llamaindex/chat-ui": "0.0.8",
"@llamaindex/chat-ui": "0.0.9",
"@llamaindex/cloud": "workspace:*",
"@llamaindex/core": "workspace:*",
"@llamaindex/node-parser": "workspace:*",
@@ -20,31 +20,31 @@
"@llamaindex/readers": "workspace:*",
"@llamaindex/workflow": "workspace:*",
"@mdx-js/mdx": "^3.1.0",
"@number-flow/react": "^0.3.0",
"@number-flow/react": "^0.3.4",
"@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-icons": "^1.3.1",
"@radix-ui/react-icons": "^1.3.2",
"@radix-ui/react-label": "^2.1.0",
"@radix-ui/react-slider": "^1.2.1",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.3",
"@radix-ui/react-tooltip": "^1.1.4",
"@vercel/functions": "^1.5.0",
"ai": "^3.4.31",
"ai": "^3.4.33",
"class-variance-authority": "^0.7.0",
"clsx": "2.1.1",
"foxact": "^0.2.40",
"framer-motion": "^11.11.11",
"fumadocs-core": "14.2.0",
"fumadocs-docgen": "^1.3.1",
"foxact": "^0.2.41",
"framer-motion": "^11.11.17",
"fumadocs-core": "14.4.2",
"fumadocs-docgen": "^1.3.2",
"fumadocs-mdx": "^11.1.1",
"fumadocs-openapi": "^5.5.6",
"fumadocs-openapi": "^5.7.0",
"fumadocs-twoslash": "^2.0.1",
"fumadocs-typescript": "^3.0.1",
"fumadocs-ui": "14.2.0",
"fumadocs-typescript": "^3.0.2",
"fumadocs-ui": "14.4.2",
"hast-util-to-jsx-runtime": "^2.3.2",
"llamaindex": "workspace:*",
"lucide-react": "^0.454.0",
"next": "15.0.2",
"next-themes": "^0.3.0",
"lucide-react": "^0.460.0",
"next": "15.0.3",
"next-themes": "^0.4.3",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-icons": "^5.3.0",
@@ -54,19 +54,19 @@
"rehype-katex": "^7.0.1",
"remark-math": "^6.0.0",
"rimraf": "^6.0.1",
"shiki": "^1.22.2",
"shiki": "^1.23.1",
"shiki-magic-move": "^0.5.0",
"swr": "^2.2.5",
"tailwind-merge": "^2.5.2",
"tailwindcss-animate": "^1.0.7",
"tree-sitter": "^0.22.0",
"tree-sitter-typescript": "^0.23.0",
"use-stick-to-bottom": "^1.0.41",
"web-tree-sitter": "^0.24.3",
"tree-sitter": "^0.22.1",
"tree-sitter-typescript": "^0.23.2",
"use-stick-to-bottom": "^1.0.42",
"web-tree-sitter": "^0.24.4",
"zod": "^3.23.8"
},
"devDependencies": {
"@next/env": "^15.0.2",
"@next/env": "^15.0.3",
"@types/mdx": "^2.0.13",
"@types/node": "22.9.0",
"@types/react": "^18.3.12",
@@ -75,12 +75,12 @@
"fast-glob": "^3.3.2",
"gray-matter": "^4.0.3",
"monaco-editor-webpack-plugin": "^7.1.0",
"postcss": "^8.4.47",
"postcss": "^8.4.49",
"remark": "^15.0.1",
"remark-gfm": "^4.0.0",
"remark-mdx": "^3.1.0",
"remark-stringify": "^11.0.0",
"tailwindcss": "^3.4.14",
"tailwindcss": "^3.4.15",
"tsx": "^4.19.2",
"typescript": "^5.6.3"
}
@@ -37,6 +37,33 @@ Then, you need create `.dev.vars` and add LLM api keys for the local development
<Callout type="warn">Do not commit the api key to git repository.</Callout>
## Integrating with Hono
```ts
import { Hono } from "hono";
type Bindings = {
OPENAI_API_KEY: string;
};
const app = new Hono<{
Bindings: Bindings;
}>();
app.post("/llm", async (c) => {
const { setEnvs } = await import("@llamaindex/env");
setEnvs(c.env);
// ...
return new Response('Hello, world!');
})
export default {
fetch: app.fetch,
};
```
## Difference between Node.js and Cloudflare Worker
In Cloudflare Worker and similar serverless JS environment, you need to be aware of the following differences:
@@ -46,3 +73,7 @@ In Cloudflare Worker and similar serverless JS environment, you need to be aware
- Some of LlamaIndex.TS modules are not available in Cloudflare Worker, for example `SimpleDirectoryReader` (requires `node:fs`), Some multimodal API that relies on [`onnxruntime-node`](https://www.npmjs.com/package/onnxruntime-node)(we might port to HTTP based module in the future).
- `@llamaindex/core` is designed to work in all JavaScript environment, including Cloudflare Worker. If you find any issue, please report to us.
- `@llamaindex/env` is a JS environment binding module, which polyfill some Node.js/Modern Web API (for example, we have a memory based `fs` module, and Crypto API polyfill). It is designed to work in all JavaScript environment, including Cloudflare Worker.
## Known issues
- `llamaindex` not work perfectly in Cloudflare Worker, bundle size will be larger than 1MB, which is the limit of Cloudflare Worker. You will need import submodule instead of the whole `llamaindex` module.
+3
View File
@@ -1 +1,4 @@
POSTGRES_USER=runner
PINECONE_API_KEY=
PINECONE_INDEX_NAME=
PINECONE_NAMESPACE=
+172
View File
@@ -0,0 +1,172 @@
# Logs
logs
_.log
npm-debug.log_
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
# Runtime data
pids
_.pid
_.seed
\*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
\*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
\*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
\*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.\*
# wrangler project
.dev.vars
.wrangler/
+20
View File
@@ -0,0 +1,20 @@
{
"name": "@llamaindex/cloudflare-hono",
"version": "0.0.0",
"private": true,
"scripts": {
"deploy": "wrangler deploy",
"build": "wrangler deploy --dry-run --outdir dist",
"dev": "wrangler dev",
"start": "wrangler dev",
"cf-typegen": "wrangler types"
},
"devDependencies": {
"@cloudflare/workers-types": "^4.20241112.0",
"typescript": "^5.5.2",
"wrangler": "^3.89.0"
},
"dependencies": {
"hono": "^4.6.11"
}
}
+91
View File
@@ -0,0 +1,91 @@
import { Hono } from "hono";
type Bindings = {
OPENAI_API_KEY: string;
PINECONE_API_KEY: string;
};
const app = new Hono<{
Bindings: Bindings;
}>();
app.post("/llm", async (c) => {
//#region init envs
const { setEnvs } = await import("@llamaindex/env");
setEnvs(c.env);
//#endregion
const { message } = await c.req.json();
const { extractText } = await import("@llamaindex/core/utils");
const {
QueryEngineTool,
serviceContextFromDefaults,
VectorStoreIndex,
OpenAIAgent,
Settings,
OpenAI,
OpenAIEmbedding,
} = await import("llamaindex");
const { PineconeVectorStore } = await import(
"llamaindex/vector-store/PineconeVectorStore"
);
const llm = new OpenAI({
model: "gpt-4o-mini",
apiKey: c.env.OPENAI_API_KEY,
});
Settings.embedModel = new OpenAIEmbedding({
model: "text-embedding-3-small",
apiKey: c.env.OPENAI_API_KEY,
});
const serviceContext = serviceContextFromDefaults({
llm,
chunkSize: 8191,
chunkOverlap: 0,
});
const store = new PineconeVectorStore({
namespace: "8xolsn4ulEQGdhnhP76yCzfLHdOZ",
});
const index = await VectorStoreIndex.fromVectorStore(store, serviceContext);
const retriever = index.asRetriever({
similarityTopK: 3,
});
// Create a query engine
const queryEngine = index.asQueryEngine({
retriever,
});
const tools = [
new QueryEngineTool({
queryEngine: queryEngine,
metadata: {
name: "business_info_tool",
description:
"This tool can answer questions based " +
"on business information. Return not found if you" +
" can't find the answer in the documents.",
},
}),
];
const agent = new OpenAIAgent({ tools });
const response = await agent.chat({
message: message,
});
return new Response(extractText(response.message.content));
});
export default {
fetch: app.fetch,
};
@@ -0,0 +1,39 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
/* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
"target": "es2021",
/* Specify a set of bundled library declaration files that describe the target runtime environment. */
"lib": ["es2021", "DOM.AsyncIterable"],
/* Specify what JSX code is generated. */
"jsx": "react-jsx",
/* Specify what module code is generated. */
"module": "es2022",
/* Specify how TypeScript looks up a file from a given module specifier. */
"moduleResolution": "Bundler",
/* Specify type package names to be included without being referenced in a source file. */
"types": ["@cloudflare/workers-types/2023-07-01"],
/* Enable importing .json files */
"resolveJsonModule": true,
/* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */
"allowJs": true,
/* Enable error reporting in type-checked JavaScript files. */
"checkJs": false,
/* Disable emitting files from a compilation. */
"noEmit": true,
/* Ensure that each file can be safely transpiled without relying on other imports. */
"isolatedModules": true,
/* Allow 'import x from y' when a module doesn't have a default export. */
"allowSyntheticDefaultImports": true,
/* Ensure that casing is correct in imports. */
"forceConsistentCasingInFileNames": true,
/* Enable all strict type-checking options. */
"strict": true,
/* Skip type checking all .d.ts files. */
"skipLibCheck": true
},
"exclude": ["test"],
"include": ["vitest.config.mts", "worker-configuration.d.ts", "src/**/*.ts"]
}
@@ -0,0 +1,4 @@
// Generated by Wrangler by running `wrangler types`
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
interface Env {}
@@ -0,0 +1,7 @@
name = "llamaindex-cloudflare-hono-example"
main = "src/index.ts"
compatibility_date = "2024-11-12"
compatibility_flags = ["nodejs_als"]
[observability]
enabled = true
@@ -1,5 +1,47 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.120
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.0.119
### Patch Changes
- llamaindex@0.8.23
## 0.0.118
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
## 0.0.117
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.0.116
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.0.115
### Patch Changes
- Updated dependencies [90d265c]
- llamaindex@0.8.19
## 0.0.114
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.114",
"version": "0.0.120",
"type": "module",
"private": true,
"scripts": {
@@ -12,13 +12,13 @@
"cf-typegen": "wrangler types"
},
"devDependencies": {
"@cloudflare/vitest-pool-workers": "^0.5.8",
"@cloudflare/workers-types": "^4.20240924.0",
"@vitest/runner": "2.1.4",
"@vitest/snapshot": "2.1.4",
"@cloudflare/vitest-pool-workers": "^0.5.28",
"@cloudflare/workers-types": "^4.20241112.0",
"@vitest/runner": "2.1.5",
"@vitest/snapshot": "2.1.5",
"typescript": "^5.6.3",
"vitest": "2.1.4",
"wrangler": "^3.78.8"
"vitest": "2.1.5",
"wrangler": "^3.87.0"
},
"dependencies": {
"llamaindex": "workspace:*"
@@ -1,5 +1,24 @@
# @llamaindex/llama-parse-browser-test
## 0.0.35
### Patch Changes
- @llamaindex/cloud@2.0.15
## 0.0.34
### Patch Changes
- @llamaindex/cloud@2.0.14
## 0.0.33
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/cloud@2.0.13
## 0.0.32
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/llama-parse-browser-test",
"private": true,
"version": "0.0.32",
"version": "0.0.35",
"type": "module",
"scripts": {
"dev": "vite",
@@ -10,7 +10,7 @@
},
"devDependencies": {
"typescript": "^5.6.3",
"vite": "^5.4.1",
"vite": "^5.4.11",
"vite-plugin-wasm": "^3.3.0"
},
"dependencies": {
+42
View File
@@ -1,5 +1,47 @@
# @llamaindex/next-agent-test
## 0.1.120
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.1.119
### Patch Changes
- llamaindex@0.8.23
## 0.1.118
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
## 0.1.117
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.1.116
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.1.115
### Patch Changes
- Updated dependencies [90d265c]
- llamaindex@0.8.19
## 0.1.114
### Patch Changes
+7 -7
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.114",
"version": "0.1.120",
"private": true,
"scripts": {
"dev": "next dev",
@@ -8,9 +8,9 @@
"start": "next start"
},
"dependencies": {
"ai": "^3.3.21",
"ai": "^4.0.0",
"llamaindex": "workspace:*",
"next": "15.0.2",
"next": "15.0.3",
"react": "18.3.1",
"react-dom": "18.3.1"
},
@@ -18,10 +18,10 @@
"@types/node": "^22.9.0",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"eslint": "9.14.0",
"eslint-config-next": "15.0.2",
"postcss": "^8.4.41",
"tailwindcss": "^3.4.10",
"eslint": "9.15.0",
"eslint-config-next": "15.0.3",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.15",
"typescript": "^5.6.3"
}
}
@@ -1,5 +1,47 @@
# test-edge-runtime
## 0.1.119
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.1.118
### Patch Changes
- llamaindex@0.8.23
## 0.1.117
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
## 0.1.116
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.1.115
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.1.114
### Patch Changes
- Updated dependencies [90d265c]
- llamaindex@0.8.19
## 0.1.113
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.113",
"version": "0.1.119",
"private": true,
"scripts": {
"dev": "next dev",
@@ -9,7 +9,7 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"next": "15.0.2",
"next": "15.0.3",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
@@ -1,5 +1,47 @@
# @llamaindex/next-node-runtime
## 0.0.101
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.0.100
### Patch Changes
- llamaindex@0.8.23
## 0.0.99
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
## 0.0.98
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.0.97
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.0.96
### Patch Changes
- Updated dependencies [90d265c]
- llamaindex@0.8.19
## 0.0.95
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.0.95",
"version": "0.0.101",
"private": true,
"scripts": {
"dev": "next dev",
@@ -9,7 +9,7 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"next": "15.0.2",
"next": "15.0.3",
"react": "18.3.1",
"react-dom": "18.3.1"
},
@@ -17,10 +17,10 @@
"@types/node": "^22.9.0",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"eslint": "9.14.0",
"eslint-config-next": "15.0.2",
"postcss": "^8.4.41",
"tailwindcss": "^3.4.10",
"eslint": "9.15.0",
"eslint-config-next": "15.0.3",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.15",
"typescript": "^5.6.3"
}
}
@@ -1,5 +1,47 @@
# @llamaindex/waku-query-engine-test
## 0.0.120
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.0.119
### Patch Changes
- llamaindex@0.8.23
## 0.0.118
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
## 0.0.117
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.0.116
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.0.115
### Patch Changes
- Updated dependencies [90d265c]
- llamaindex@0.8.19
## 0.0.114
### Patch Changes
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.114",
"version": "0.0.120",
"type": "module",
"private": true,
"scripts": {
@@ -10,16 +10,16 @@
},
"dependencies": {
"llamaindex": "workspace:*",
"react": "19.0.0-rc-bf7e210c-20241017",
"react-dom": "19.0.0-rc-bf7e210c-20241017",
"react-server-dom-webpack": "19.0.0-rc-bf7e210c-20241017",
"waku": "0.21.4"
"react": "19.0.0-rc-5c56b873-20241107",
"react-dom": "19.0.0-rc-5c56b873-20241107",
"react-server-dom-webpack": "19.0.0-rc-5c56b873-20241107",
"waku": "0.21.6"
},
"devDependencies": {
"@types/react": "18.3.12",
"@types/react-dom": "18.3.1",
"autoprefixer": "^10.4.20",
"tailwindcss": "^3.4.14",
"tailwindcss": "^3.4.15",
"typescript": "5.6.3"
}
}
+66
View File
@@ -0,0 +1,66 @@
import { Document, MetadataMode } from "@llamaindex/core/schema";
import { config } from "dotenv";
import {
OpenAIEmbedding,
PineconeVectorStore,
VectorStoreIndex,
} from "llamaindex";
import assert from "node:assert";
import { test } from "node:test";
config({ path: [".env.local", ".env", ".env.ci"] });
await test("pinecone", async (t) => {
if (
!process.env.PINECONE_API_KEY ||
!process.env.PINECONE_NAMESPACE ||
!process.env.PINECONE_INDEX_NAME
) {
return t.skip(
"PINECONE_API_KEY, PINECONE_NAMESPACE, and PINECONE_INDEX_NAME must be set to run this test",
);
}
const openaiEmbedding = new OpenAIEmbedding({
model: "text-embedding-3-large",
});
const vectorStore = new PineconeVectorStore({
embeddingModel: openaiEmbedding,
});
t.after(async () => {
await vectorStore.clearIndex();
});
const index = await VectorStoreIndex.fromVectorStore(vectorStore);
const retriever = index.asRetriever({
similarityTopK: 3,
});
const text = "We are open from 9am to 5pm";
await vectorStore.add([
new Document({
text,
embedding: await openaiEmbedding.getTextEmbedding(text),
}),
]);
const results = await retriever.retrieve({
query: "When are you open?",
});
results.every((result) => {
assert.ok(result.node.embedding instanceof Array);
result.node.embedding.every((embedding, idx) =>
assert.ok(
typeof embedding === "number",
`Embedding at index ${idx} should be a number`,
),
);
assert.ok(typeof result.score === "number", "Score should be a number");
assert.ok(
result.node.getContent(MetadataMode.NONE).length > 0,
"Content should not be empty",
);
});
});
+1 -1
View File
@@ -11,7 +11,7 @@
"@llamaindex/readers": "^1.0.11",
"@llamaindex/workflow": "^0.0.6",
"@notionhq/client": "^2.2.15",
"@pinecone-database/pinecone": "^3.0.2",
"@pinecone-database/pinecone": "^4.0.0",
"@vercel/postgres": "^0.10.0",
"@zilliz/milvus2-sdk-node": "^2.4.6",
"chromadb": "^1.8.1",
+2 -1
View File
@@ -15,7 +15,8 @@
"start:llamaparse-dir": "node --import tsx ./src/simple-directory-reader-with-llamaparse.ts",
"start:llamaparse-json": "node --import tsx ./src/llamaparse-json.ts",
"start:discord": "node --import tsx ./src/discord.ts",
"start:json": "node --import tsx ./src/json.ts"
"start:json": "node --import tsx ./src/json.ts",
"start:obsidian": "node --import tsx ./src/obsidian.ts"
},
"dependencies": {
"@llamaindex/readers": "*",
+12
View File
@@ -0,0 +1,12 @@
import { ObsidianReader } from "@llamaindex/readers/obsidian";
const obsidianReader = new ObsidianReader(
"/Users/jingyi/Documents/jingyi-vault",
);
obsidianReader.loadData().then((documents) => {
console.log("documents:", documents.length);
documents.forEach((doc) => {
console.log(`document (${doc.id_}):`, doc.getText());
});
});
+6 -6
View File
@@ -19,20 +19,20 @@
},
"devDependencies": {
"@changesets/cli": "^2.27.5",
"eslint": "9.14.0",
"eslint-config-next": "^15.0.2",
"eslint": "9.15.0",
"eslint-config-next": "^15.0.3",
"eslint-config-prettier": "^9.1.0",
"eslint-config-turbo": "^2.2.3",
"eslint-config-turbo": "^2.3.0",
"eslint-plugin-react": "7.37.2",
"globals": "^15.12.0",
"husky": "^9.1.6",
"husky": "^9.1.7",
"lint-staged": "^15.2.10",
"madge": "^8.0.0",
"prettier": "^3.3.3",
"prettier-plugin-organize-imports": "^4.1.0",
"turbo": "^2.2.3",
"turbo": "^2.3.0",
"typescript": "^5.6.3",
"typescript-eslint": "^8.13.0"
"typescript-eslint": "^8.15.0"
},
"packageManager": "pnpm@9.12.3",
"lint-staged": {
+43
View File
@@ -1,5 +1,48 @@
# @llamaindex/autotool
## 5.0.24
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 5.0.23
### Patch Changes
- llamaindex@0.8.23
## 5.0.22
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
## 5.0.21
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 5.0.20
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 5.0.19
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- llamaindex@0.8.19
## 5.0.18
### Patch Changes
@@ -1,5 +1,53 @@
# @llamaindex/autotool-01-node-example
## 0.0.67
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
- @llamaindex/autotool@5.0.24
## 0.0.66
### Patch Changes
- llamaindex@0.8.23
- @llamaindex/autotool@5.0.23
## 0.0.65
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
- @llamaindex/autotool@5.0.22
## 0.0.64
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
- @llamaindex/autotool@5.0.21
## 0.0.63
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
- @llamaindex/autotool@5.0.20
## 0.0.62
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/autotool@5.0.19
- llamaindex@0.8.19
## 0.0.61
### Patch Changes
@@ -5,7 +5,7 @@
"dependencies": {
"@llamaindex/autotool": "workspace:*",
"llamaindex": "workspace:*",
"openai": "^4.57.0"
"openai": "^4.72.0"
},
"devDependencies": {
"tsx": "^4.19.0"
@@ -13,5 +13,5 @@
"scripts": {
"start": "node --import tsx --import @llamaindex/autotool/node ./src/index.ts"
},
"version": "0.0.61"
"version": "0.0.67"
}
@@ -1,5 +1,53 @@
# @llamaindex/autotool-02-next-example
## 0.1.111
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
- @llamaindex/autotool@5.0.24
## 0.1.110
### Patch Changes
- llamaindex@0.8.23
- @llamaindex/autotool@5.0.23
## 0.1.109
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
- @llamaindex/autotool@5.0.22
## 0.1.108
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
- @llamaindex/autotool@5.0.21
## 0.1.107
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
- @llamaindex/autotool@5.0.20
## 0.1.106
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/autotool@5.0.19
- llamaindex@0.8.19
## 0.1.105
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool-02-next-example",
"private": true,
"version": "0.1.105",
"version": "0.1.111",
"scripts": {
"dev": "next dev",
"build": "next build",
@@ -10,17 +10,17 @@
"dependencies": {
"@llamaindex/autotool": "workspace:*",
"@radix-ui/react-slot": "^1.1.0",
"ai": "^3.3.21",
"ai": "^4.0.0",
"class-variance-authority": "^0.7.0",
"dotenv": "^16.3.1",
"llamaindex": "workspace:*",
"lucide-react": "^0.436.0",
"next": "15.0.2",
"lucide-react": "^0.460.0",
"next": "15.0.3",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-markdown": "^9.0.1",
"react-syntax-highlighter": "^15.5.0",
"sonner": "^1.5.0",
"sonner": "^1.7.0",
"tailwind-merge": "^2.5.2"
},
"devDependencies": {
@@ -30,8 +30,8 @@
"@types/react-syntax-highlighter": "^15.5.11",
"autoprefixer": "^10.4.20",
"cross-env": "^7.0.3",
"postcss": "^8.4.41",
"tailwindcss": "^3.4.10",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.15",
"typescript": "^5.6.3"
}
}
+7 -7
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool",
"type": "module",
"version": "5.0.18",
"version": "5.0.24",
"description": "auto transpile your JS function to LLM Agent compatible",
"files": [
"dist",
@@ -45,10 +45,10 @@
"dev": "bunchee --watch"
},
"dependencies": {
"@swc/core": "^1.7.22",
"jotai": "2.8.4",
"@swc/core": "^1.9.2",
"jotai": "2.10.2",
"typedoc": "^0.26.11",
"unplugin": "^1.12.2"
"unplugin": "^1.16.0"
},
"peerDependencies": {
"llamaindex": "workspace:*",
@@ -72,11 +72,11 @@
"@types/node": "^22.9.0",
"bunchee": "5.6.1",
"llamaindex": "workspace:*",
"next": "15.0.2",
"rollup": "^4.24.4",
"next": "15.0.3",
"rollup": "^4.27.3",
"tsx": "^4.19.0",
"typescript": "^5.6.3",
"vitest": "^2.1.4",
"vitest": "^2.1.5",
"webpack": "^5.94.0"
}
}
+1 -1
View File
@@ -22,7 +22,7 @@ export type InfoString = {
parameterMapping: Record<string, number>;
};
export const store = createStore();
export const store: ReturnType<typeof createStore> = createStore();
export const toolMetadataAtom = atom<[ToolMetadata, Info][]>([]);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const toolsAtom = atom<Record<string, (...args: any[]) => any>>({});
+25
View File
@@ -1,5 +1,30 @@
# @llamaindex/cloud
## 2.0.15
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 2.0.14
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 2.0.13
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 2.0.12
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloud",
"version": "2.0.12",
"version": "2.0.15",
"type": "module",
"license": "MIT",
"scripts": {
@@ -50,8 +50,8 @@
"directory": "packages/cloud"
},
"devDependencies": {
"@hey-api/client-fetch": "^0.4.2",
"@hey-api/openapi-ts": "^0.54.3",
"@hey-api/client-fetch": "^0.4.4",
"@hey-api/openapi-ts": "^0.56.0",
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"bunchee": "5.6.1"
+25
View File
@@ -1,5 +1,30 @@
# @llamaindex/community
## 0.0.73
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 0.0.72
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 0.0.71
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 0.0.70
### Patch Changes
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/community",
"description": "Community package for LlamaIndexTS",
"version": "0.0.70",
"version": "0.0.73",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -46,8 +46,8 @@
"bunchee": "5.6.1"
},
"dependencies": {
"@aws-sdk/client-bedrock-agent-runtime": "^3.642.0",
"@aws-sdk/client-bedrock-runtime": "^3.642.0",
"@aws-sdk/client-bedrock-agent-runtime": "^3.693.0",
"@aws-sdk/client-bedrock-runtime": "^3.693.0",
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*"
}
+22
View File
@@ -1,5 +1,27 @@
# @llamaindex/core
## 0.4.15
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
## 0.4.14
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
## 0.4.13
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/env@0.1.21
## 0.4.12
### Patch Changes
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/core",
"type": "module",
"version": "0.4.12",
"version": "0.4.15",
"description": "LlamaIndex Core Module",
"exports": {
"./agent": {
@@ -389,10 +389,10 @@
"url": "https://github.com/run-llama/LlamaIndexTS.git"
},
"devDependencies": {
"@edge-runtime/vm": "^4.0.3",
"@edge-runtime/vm": "^4.0.4",
"ajv": "^8.17.1",
"bunchee": "5.6.1",
"happy-dom": "^15.11.0",
"happy-dom": "^15.11.6",
"natural": "^8.0.1"
},
"dependencies": {
+1 -1
View File
@@ -7,6 +7,6 @@
},
"devDependencies": {
"@llamaindex/core": "workspace:*",
"vitest": "^2.1.4"
"vitest": "^2.1.5"
}
}
+18
View File
@@ -1,5 +1,23 @@
# @llamaindex/env
## 0.1.23
### Patch Changes
- d2b2722: fix: switch tokenizer in cloudflare
## 0.1.22
### Patch Changes
- 969365c: fix: async local storage on cloudflare worker
## 0.1.21
### Patch Changes
- 90d265c: chore: bump version
## 0.1.20
### Patch Changes
+4 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/env",
"description": "environment wrapper, supports all JS environment including node, deno, bun, edge runtime, and cloudflare worker",
"version": "0.1.20",
"version": "0.1.23",
"type": "module",
"types": "dist/index.d.ts",
"module": "dist/index.js",
@@ -122,13 +122,13 @@
"test": "vitest"
},
"devDependencies": {
"@huggingface/transformers": "^3.0.2",
"@types/node": "^22.9.0",
"@types/readable-stream": "^4.0.15",
"@huggingface/transformers": "^3.0.2",
"bunchee": "5.6.1",
"gpt-tokenizer": "^2.6.0",
"gpt-tokenizer": "^2.6.2",
"pathe": "^1.1.2",
"vitest": "^2.1.4"
"vitest": "^2.1.5"
},
"peerDependencies": {
"@aws-crypto/sha256-js": "^5.2.0",
+1
View File
@@ -0,0 +1 @@
export { AsyncLocalStorage } from "node:async_hooks";
+1 -1
View File
@@ -7,7 +7,7 @@
*/
import { INTERNAL_ENV } from "./utils/index.js";
export * from "./als/index.non-node.js";
export * from "./als/index.workerd.js";
export { NotSupportCurrentRuntimeClass } from "./utils/shared.js";
export * from "./node-polyfill.js";
+1 -1
View File
@@ -2,4 +2,4 @@ export {
Tokenizers,
tokenizers,
type Tokenizer,
} from "./internal/tokenizers/js.js";
} from "./internal/tokenizers/node.js";
+43
View File
@@ -1,5 +1,48 @@
# @llamaindex/experimental
## 0.0.136
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.0.135
### Patch Changes
- llamaindex@0.8.23
## 0.0.134
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
## 0.0.133
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.0.132
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.0.131
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- llamaindex@0.8.19
## 0.0.130
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/experimental",
"description": "Experimental package for LlamaIndexTS",
"version": "0.0.130",
"version": "0.0.136",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
@@ -57,7 +57,7 @@
"devDependencies": {
"@aws-crypto/sha256-js": "^5.2.0",
"@swc/cli": "^0.5.0",
"@swc/core": "^1.7.22",
"@swc/core": "^1.9.2",
"@types/jsonpath": "^0.2.4",
"concurrently": "^9.1.0",
"pathe": "^1.1.2"
+84
View File
@@ -1,5 +1,89 @@
# llamaindex
## 0.8.24
### Patch Changes
- 515f2c1: Add vector store for CosmosDB
## 0.8.23
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/cloud@2.0.15
- @llamaindex/core@0.4.15
- @llamaindex/node-parser@0.0.16
- @llamaindex/anthropic@0.0.24
- @llamaindex/clip@0.0.24
- @llamaindex/deepinfra@0.0.24
- @llamaindex/groq@0.0.39
- @llamaindex/huggingface@0.0.24
- @llamaindex/ollama@0.0.31
- @llamaindex/openai@0.1.40
- @llamaindex/portkey-ai@0.0.24
- @llamaindex/replicate@0.0.24
- @llamaindex/readers@1.0.17
- @llamaindex/vllm@0.0.10
## 0.8.22
### Patch Changes
- 819af45: feat: add Azure Cosmos DB Mongo vCore ChatStore
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/cloud@2.0.14
- @llamaindex/core@0.4.14
- @llamaindex/node-parser@0.0.15
- @llamaindex/anthropic@0.0.23
- @llamaindex/clip@0.0.23
- @llamaindex/deepinfra@0.0.23
- @llamaindex/groq@0.0.38
- @llamaindex/huggingface@0.0.23
- @llamaindex/ollama@0.0.30
- @llamaindex/openai@0.1.39
- @llamaindex/portkey-ai@0.0.23
- @llamaindex/replicate@0.0.23
- @llamaindex/readers@1.0.16
- @llamaindex/vllm@0.0.9
## 0.8.21
### Patch Changes
- 83c3897: fix: pinecone vector store search
- efa2211: feat: add Azure Cosmos DB mongo vCore DocumentStore, IndexStore, KVStore
## 0.8.20
### Patch Changes
- 02b22da: fix: supports Vercel bundling
## 0.8.19
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/cloud@2.0.13
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
- @llamaindex/node-parser@0.0.14
- @llamaindex/readers@1.0.15
- @llamaindex/anthropic@0.0.22
- @llamaindex/groq@0.0.37
- @llamaindex/ollama@0.0.29
- @llamaindex/openai@0.1.38
- @llamaindex/portkey-ai@0.0.22
- @llamaindex/clip@0.0.22
- @llamaindex/deepinfra@0.0.22
- @llamaindex/huggingface@0.0.22
- @llamaindex/replicate@0.0.22
- @llamaindex/vllm@0.0.8
## 0.8.18
### Patch Changes
+14 -14
View File
@@ -1,6 +1,6 @@
{
"name": "llamaindex",
"version": "0.8.18",
"version": "0.8.24",
"license": "MIT",
"type": "module",
"keywords": [
@@ -20,15 +20,15 @@
"llamaindex"
],
"dependencies": {
"@anthropic-ai/sdk": "0.27.1",
"@anthropic-ai/sdk": "0.32.1",
"@aws-crypto/sha256-js": "^5.2.0",
"@aws-sdk/client-sso-oidc": "^3.679.0",
"@aws-sdk/client-sso-oidc": "^3.693.0",
"@azure/cosmos": "^4.1.1",
"@azure/identity": "^4.4.1",
"@datastax/astra-db-ts": "^1.4.1",
"@discoveryjs/json-ext": "^0.6.1",
"@google-cloud/vertexai": "1.2.0",
"@google/generative-ai": "0.12.0",
"@google-cloud/vertexai": "1.9.0",
"@google/generative-ai": "0.21.0",
"@grpc/grpc-js": "^1.12.2",
"@llamaindex/anthropic": "workspace:*",
"@llamaindex/clip": "workspace:*",
@@ -45,9 +45,9 @@
"@llamaindex/readers": "workspace:*",
"@llamaindex/replicate": "workspace:*",
"@llamaindex/vllm": "workspace:*",
"@mistralai/mistralai": "^1.0.4",
"@mistralai/mistralai": "^1.3.4",
"@mixedbread-ai/sdk": "^2.2.11",
"@pinecone-database/pinecone": "^3.0.2",
"@pinecone-database/pinecone": "^4.0.0",
"@qdrant/js-client-rest": "^1.11.0",
"@types/lodash": "^4.17.7",
"@types/node": "^22.9.0",
@@ -55,20 +55,20 @@
"@upstash/vector": "^1.1.5",
"@zilliz/milvus2-sdk-node": "^2.4.6",
"ajv": "^8.17.1",
"assemblyai": "^4.7.0",
"assemblyai": "^4.8.0",
"chromadb": "1.9.2",
"chromadb-default-embed": "^2.13.2",
"cohere-ai": "7.13.0",
"gpt-tokenizer": "^2.6.0",
"groq-sdk": "^0.6.1",
"cohere-ai": "7.14.0",
"gpt-tokenizer": "^2.6.2",
"groq-sdk": "^0.8.0",
"js-tiktoken": "^1.0.14",
"lodash": "^4.17.21",
"magic-bytes.js": "^1.10.0",
"mongodb": "^6.7.0",
"openai": "^4.60.0",
"openai": "^4.72.0",
"pathe": "^1.1.2",
"rake-modified": "^1.0.8",
"weaviate-client": "^3.1.4",
"weaviate-client": "^3.2.3",
"wikipedia": "^2.1.2",
"wink-nlp": "^2.3.0",
"zod": "^3.23.8"
@@ -88,7 +88,7 @@
"devDependencies": {
"@huggingface/transformers": "^3.0.2",
"@swc/cli": "^0.5.0",
"@swc/core": "^1.7.22",
"@swc/core": "^1.9.2",
"@vercel/postgres": "^0.10.0",
"concurrently": "^9.1.0",
"glob": "^11.0.0",
+2 -1
View File
@@ -4,6 +4,7 @@ import {
HarmBlockThreshold,
HarmCategory,
type SafetySetting,
SchemaType,
} from "@google/generative-ai";
import { type GenerateContentResponse } from "@google-cloud/vertexai";
@@ -161,7 +162,7 @@ export const mapBaseToolToGeminiFunctionDeclaration = (
tool: BaseTool,
): FunctionDeclaration => {
const parameters: FunctionDeclarationSchema = {
type: tool.metadata.parameters?.type.toUpperCase(),
type: tool.metadata.parameters?.type.toLowerCase() as SchemaType,
properties: tool.metadata.parameters?.properties,
description: tool.metadata.parameters?.description,
required: tool.metadata.parameters?.required,
+1
View File
@@ -15,5 +15,6 @@ export * from "@llamaindex/readers/json";
export * from "@llamaindex/readers/markdown";
export * from "@llamaindex/readers/mongo";
export * from "@llamaindex/readers/notion";
export * from "@llamaindex/readers/obsidian";
export * from "@llamaindex/readers/pdf";
export * from "@llamaindex/readers/text";
@@ -0,0 +1,186 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import type {
ChatMessage,
MessageContent,
MessageType,
} from "@llamaindex/core/llms";
import { BaseChatStore } from "@llamaindex/core/storage/chat-store";
import type { Collection } from "mongodb";
import { MongoClient } from "mongodb";
const DEFAULT_CHAT_DATABASE = "ChatStoreDB";
const DEFAULT_CHAT_Collection = "ChatStoreCollection";
export interface AzureCosmosVCoreChatStoreConfig {
mongoClient?: MongoClient;
dbName?: string;
collectionName?: string;
}
export class AzureCosmosVCoreChatStore<
AdditionalMessageOptions extends object = object,
> extends BaseChatStore<AdditionalMessageOptions> {
private mongoClient: MongoClient;
private dbName: string;
private collectionName: string;
private collection?: Collection;
/**
* Create a new AzureCosmosVCoreChatStore instance.
*/
constructor({
mongoClient,
dbName = DEFAULT_CHAT_DATABASE,
collectionName = DEFAULT_CHAT_Collection,
}: AzureCosmosVCoreChatStoreConfig) {
super();
if (!mongoClient) {
throw new Error(
"MongoClient is required for AzureCosmosVCoreChatStore initialization",
);
}
this.mongoClient = mongoClient;
this.dbName = dbName;
this.collectionName = collectionName;
}
static fromMongoClient(
mongoClient: MongoClient,
dbName: string = DEFAULT_CHAT_DATABASE,
collectionName: string = DEFAULT_CHAT_Collection,
) {
return new AzureCosmosVCoreChatStore({
mongoClient,
dbName,
collectionName,
});
}
client(): MongoClient {
return this.mongoClient;
}
private convertToChatMessage(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
message: any,
): ChatMessage<AdditionalMessageOptions> {
return {
content: message.content as MessageContent,
role: message.role as MessageType,
options: message.options as AdditionalMessageOptions,
} as ChatMessage<AdditionalMessageOptions>;
}
private convertTovCoreMessage(
message: ChatMessage<AdditionalMessageOptions>,
): // eslint-disable-next-line @typescript-eslint/no-explicit-any
any {
return {
content: message.content,
role: message.role,
options: message.options,
};
}
private async ensureCollection(): Promise<Collection> {
if (!this.collection) {
this.collection = this.mongoClient
.db(this.dbName)
.collection(this.collectionName);
}
return this.collection;
}
/**
* Set messages for a given key.
*/
async setMessages(
key: string,
messages: ChatMessage<AdditionalMessageOptions>[],
): Promise<void> {
const collection = await this.ensureCollection();
const inputMessages = messages.map(this.convertTovCoreMessage);
await collection.updateOne(
{ id: key },
{ $set: { messages: inputMessages } },
{ upsert: true },
);
}
/**
* Get messages for a given key.
*/
async getMessages(
key: string,
): Promise<ChatMessage<AdditionalMessageOptions>[]> {
const collection = await this.ensureCollection();
const res = await collection.findOne({
id: key,
});
const messageHistory = res?.messages ?? [];
const result = messageHistory.map(this.convertToChatMessage);
return result;
}
/**
* Add a message for a given key.
*/
async addMessage(
key: string,
message: ChatMessage<AdditionalMessageOptions>,
idx?: number,
): Promise<void> {
const collection = await this.ensureCollection();
const res = await this.getMessages(key);
const messageHistory = res.map(this.convertTovCoreMessage) ?? [];
messageHistory.splice(
idx ?? messageHistory.length,
0,
this.convertTovCoreMessage(message),
);
await collection.updateOne(
{ id: key },
{ $set: { messages: messageHistory } },
{ upsert: true },
);
}
/**
* Deletes all messages for a given key.
*/
async deleteMessages(key: string): Promise<void> {
const collection = await this.ensureCollection();
try {
await collection.deleteOne({ id: key });
// eslint-disable-next-line no-empty
} catch (e) {}
}
/**
* Deletes one message at idx index for a given key.
*/
async deleteMessage(key: string, idx: number): Promise<void> {
// const collection = await this.ensureCollection();
const messageHistory = await this.getMessages(key);
if (idx >= 0 && idx < messageHistory.length) {
messageHistory.splice(idx, 1);
await this.setMessages(key, messageHistory);
}
}
/**
* Get all keys.
*/
async getKeys(): Promise<IterableIterator<string>> {
const collection = await this.ensureCollection();
const keys = await collection.distinct("id");
function* keyGenerator(): IterableIterator<string> {
for (const key of keys) {
yield key;
}
}
return keyGenerator();
}
}
@@ -0,0 +1,49 @@
import { MongoClient } from "mongodb";
import { AzureCosmosVCoreKVStore } from "../kvStore/AzureCosmosMongovCoreKVStore.js";
import { KVDocumentStore } from "./KVDocumentStore.js";
const DEFAULT_DATABASE = "DocumentStoreDB";
const DEFAULT_COLLECTION = "DocumentStoreCollection";
export interface AzureCosmosVCoreDocumentStoreArgs {
azureCosmosVCoreKVStore: AzureCosmosVCoreKVStore;
namespace?: string;
}
export class AzureCosmosVCoreDocumentStore extends KVDocumentStore {
constructor({
azureCosmosVCoreKVStore,
namespace,
}: AzureCosmosVCoreDocumentStoreArgs) {
super(azureCosmosVCoreKVStore, namespace);
}
/**
* Static method for creating an instance using a MongoClient.
* @returns Instance of AzureCosmosVCoreDocumentStore
* @param mongoClient - MongoClient instance
* @param dbName - Database name
* @param collectionName - Collection name
* @example
* ```ts
* const mongoClient = new MongoClient("mongodb://localhost:27017");
* const indexStore = AzureCosmosVCoreDocumentStore.fromMongoClient(mongoClient, "my_db", "my_collection");
* ```
*/
static fromMongoClient(
mongoClient: MongoClient,
dbName: string = DEFAULT_DATABASE,
collectionName: string = DEFAULT_COLLECTION,
) {
const azureCosmosVCoreKVStore = new AzureCosmosVCoreKVStore({
mongoClient,
dbName,
collectionName,
});
const namespace = `${dbName}.${collectionName}`;
return new AzureCosmosVCoreDocumentStore({
azureCosmosVCoreKVStore,
namespace,
});
}
}
+4
View File
@@ -2,13 +2,17 @@ export * from "@llamaindex/core/storage/chat-store";
export * from "@llamaindex/core/storage/doc-store";
export * from "@llamaindex/core/storage/index-store";
export * from "@llamaindex/core/storage/kv-store";
export * from "./chatStore/AzureCosmosMongovCoreChatStore.js";
export * from "./chatStore/AzureCosmosNoSqlChatStore.js";
export * from "./docStore/AzureCosmosMongovCoreDocumentStore.js";
export * from "./docStore/AzureCosmosNoSqlDocumentStore.js";
export { PostgresDocumentStore } from "./docStore/PostgresDocumentStore.js";
export { SimpleDocumentStore } from "./docStore/SimpleDocumentStore.js";
export * from "./FileSystem.js";
export * from "./indexStore/AzureCosmosMongovCoreIndexStore.js";
export * from "./indexStore/AzureCosmosNoSqlIndexStore.js";
export { PostgresIndexStore } from "./indexStore/PostgresIndexStore.js";
export * from "./kvStore/AzureCosmosMongovCoreKVStore.js";
export * from "./kvStore/AzureCosmosNoSqlKVStore.js";
export { PostgresKVStore } from "./kvStore/PostgresKVStore.js";
export * from "./StorageContext.js";
@@ -0,0 +1,49 @@
import { MongoClient } from "mongodb";
import { AzureCosmosVCoreKVStore } from "../kvStore/AzureCosmosMongovCoreKVStore.js";
import { KVIndexStore } from "./KVIndexStore.js";
const DEFAULT_DATABASE = "IndexStoreDB";
const DEFAULT_COLLECTION = "IndexStoreCollection";
export interface AzureCosmosVCoreIndexStoreArgs {
azureCosmosVCoreKVStore: AzureCosmosVCoreKVStore;
namespace?: string;
}
export class AzureCosmosVCoreIndexStore extends KVIndexStore {
constructor({
azureCosmosVCoreKVStore,
namespace,
}: AzureCosmosVCoreIndexStoreArgs) {
super(azureCosmosVCoreKVStore, namespace);
}
/**
* Static method for creating an instance using a MongoClient.
* @returns Instance of AzureCosmosVCoreIndexStore
* @param mongoClient - MongoClient instance
* @param dbName - Database name
* @param collectionName - Collection name
* @example
* ```ts
* const mongoClient = new MongoClient("mongodb://localhost:27017");
* const indexStore = AzureCosmosVCoreIndexStore.fromMongoClient(mongoClient, "my_db", "my_collection");
* ```
*/
static fromMongoClient(
mongoClient: MongoClient,
dbName: string = DEFAULT_DATABASE,
collectionName: string = DEFAULT_COLLECTION,
) {
const azureCosmosVCoreKVStore = new AzureCosmosVCoreKVStore({
mongoClient,
dbName,
collectionName,
});
const namespace = `${dbName}.${collectionName}`;
return new AzureCosmosVCoreIndexStore({
azureCosmosVCoreKVStore,
namespace,
});
}
}
@@ -0,0 +1,88 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { BaseKVStore } from "@llamaindex/core/storage/kv-store";
import type { Collection } from "mongodb";
import { MongoClient } from "mongodb";
const DEFAULT_CHAT_DATABASE = "KVStoreDB";
const DEFAULT_CHAT_Collection = "KVStoreCollection";
export interface VcoreConnectionStringOptions
extends AzureCosmosVCoreKVStoreConfig {
connectionString?: string;
}
export interface AzureCosmosVCoreKVStoreConfig {
mongoClient?: MongoClient;
dbName?: string;
collectionName?: string;
}
export class AzureCosmosVCoreKVStore extends BaseKVStore {
private mongoClient: MongoClient;
private dbName: string;
private collectionName: string;
private collection?: Collection;
/**
* Create a new AzureCosmosDBNoSQLVectorStore instance.
*/
constructor({
mongoClient,
dbName = DEFAULT_CHAT_DATABASE,
collectionName = DEFAULT_CHAT_Collection,
}: AzureCosmosVCoreKVStoreConfig) {
super();
if (!mongoClient) {
throw new Error(
"MongoClient is required for AzureCosmosDBNoSQLVectorStore initialization",
);
}
this.mongoClient = mongoClient;
this.dbName = dbName;
this.collectionName = collectionName;
}
client(): MongoClient {
return this.mongoClient;
}
private async ensureCollection(): Promise<Collection> {
if (!this.collection) {
this.collection = this.mongoClient
.db(this.dbName)
.collection(this.collectionName);
}
return this.collection;
}
async put(key: string, val: Record<string, any>): Promise<void> {
const collection = await this.ensureCollection();
const insertResult = await collection.insertOne({
id: key,
messages: val,
});
}
async get(key: string): Promise<Record<string, any> | null> {
const collection = await this.ensureCollection();
const result = await collection.findOne({ id: key });
return result || null;
}
async getAll(): Promise<Record<string, Record<string, any>>> {
const collection = await this.ensureCollection();
const cursor = collection.find();
const output: Record<string, Record<string, any>> = {};
await cursor.forEach((item) => {
output[item.id] = item.messages;
});
return output;
}
async delete(key: string): Promise<boolean> {
const collection = await this.ensureCollection();
await collection.deleteOne({ id: key });
return true;
}
}
@@ -0,0 +1,328 @@
import type { BaseNode } from "@llamaindex/core/schema";
import { MetadataMode } from "@llamaindex/core/schema";
import { getEnv } from "@llamaindex/env";
import { Collection, Db, MongoClient } from "mongodb";
import {
BaseVectorStore,
type VectorStoreBaseParams,
type VectorStoreQuery,
type VectorStoreQueryResult,
} from "./types.js";
import { metadataDictToNode, nodeToMetadata } from "./utils.js";
/** Azure Cosmos DB for MongoDB vCore Similarity type. */
export const AzureCosmosDBMongoDBSimilarityType = {
/** Cosine similarity */
COS: "COS",
/** Inner - product */
IP: "IP",
/** Euclidian distance */
L2: "L2",
} as const;
/** Azure Cosmos DB for MongoDB vCore Similarity type. */
export type AzureCosmosDBMongoDBSimilarityType =
(typeof AzureCosmosDBMongoDBSimilarityType)[keyof typeof AzureCosmosDBMongoDBSimilarityType];
/** Azure Cosmos DB for MongoDB vCore Index Options. */
export type AzureCosmosDBMongoDBIndexOptions = {
readonly indexType?: "ivf" | "hnsw" | "diskann" | undefined;
/** Number of clusters that the inverted file (IVF) index uses to group the vector data. */
readonly numLists?: number | undefined;
/** Number of dimensions for vector similarity. */
readonly dimensions?: number | undefined;
/** Similarity metric to use with the IVF index. */
readonly similarity?: AzureCosmosDBMongoDBSimilarityType | undefined;
/** The max number of connections per layer with the HNSW index. */
readonly m?: number | undefined;
/** The size of the dynamic candidate list for constructing the graph with the HNSW index. */
readonly efConstruction?: number | undefined;
/** Max number of neighbors withe the Diskann idnex */
readonly maxDegree?: number | undefined;
/** L value for index building withe the Diskann idnex */
readonly lBuild?: number | undefined;
/** L value for index searching withe the Diskann idnex */
readonly lSearch?: number | undefined;
};
/**
* Azure Cosmos DB for MongoDB vCore vector store.
* To use this, you should have both:
* - the `mongodb` NPM package installed
* - a connection string associated with a MongoDB VCore Cluster
*
* You do not need to create a database or collection, it will be created
* automatically.
*
* You also need an index on the collection, which is by default be created
* automatically using the `createIndex` method.
*/
export class AzureCosmosDBMongoDBVectorStore extends BaseVectorStore {
storesText: boolean = true;
flatMetadata: boolean = true;
dbName: string;
collectionName: string;
indexedMetadataFields: string[];
/**
* The used MongoClient. If not given, a new MongoClient is created based on the MONGODB_URI env variable.
*/
mongodbClient: MongoClient;
indexName: string;
embeddingKey: string;
idKey: string;
textKey: string;
metadataKey: string;
indexOptions: AzureCosmosDBMongoDBIndexOptions;
private collection?: Collection;
private database: Db;
constructor(
init: Partial<AzureCosmosDBMongoDBVectorStore> & {
dbName: string;
collectionName: string;
indexedMetadataFields?: string[];
} & VectorStoreBaseParams,
) {
super(init);
if (init.mongodbClient) {
this.mongodbClient = init.mongodbClient;
} else {
const mongoUri = getEnv("AZURE_COSMOSDB_MONGODB_CONNECTION_STRING");
if (!mongoUri) {
throw new Error(
"AzureCosmosDBMongoDBVectorStore client or connection string must be set.",
);
}
this.mongodbClient = new MongoClient(mongoUri);
}
this.dbName = init.dbName ?? "documentsDB";
this.collectionName = init.collectionName ?? "documents";
this.indexedMetadataFields = init.indexedMetadataFields ?? [];
this.indexName = init.indexName ?? "vectorSearchIndex";
this.embeddingKey = init.embeddingKey ?? "vectorContent";
this.idKey = init.idKey ?? "id";
this.textKey = init.textKey ?? "text";
this.metadataKey = init.metadataKey ?? "metadata";
this.indexOptions = init.indexOptions ?? {};
this.database = this.mongodbClient.db(this.dbName);
}
client() {
return this.mongodbClient;
}
async ensureCollection() {
if (!this.collection) {
const collection = await this.mongodbClient
.db(this.dbName)
.createCollection(this.collectionName);
this.collection = collection;
}
return this.collection;
}
async add(nodes: BaseNode[]): Promise<string[]> {
if (!nodes || nodes.length === 0) {
return [];
}
const dataToInsert = nodes.map((node) => {
const metadata = nodeToMetadata(
node,
true,
this.textKey,
this.flatMetadata,
);
// Include the specified metadata fields in the top level of the document (to help filter)
const populatedMetadata: Record<string, unknown> = {};
for (const field of this.indexedMetadataFields) {
populatedMetadata[field] = metadata[field];
}
return {
[this.idKey]: node.id_,
[this.embeddingKey]: node.getEmbedding(),
[this.textKey]: node.getContent(MetadataMode.NONE) || "",
[this.metadataKey]: metadata,
...populatedMetadata,
};
});
const collection = await this.ensureCollection();
const insertResult = await collection.insertMany(dataToInsert);
return Object.values(insertResult.insertedIds).map((id) => String(id));
}
/**
* Removes specified documents from the AzureCosmosDBMongoDBVectorStore.
* @param params Parameters for the delete operation.
* @returns A promise that resolves when the documents have been removed.
*/
async delete(id: string, deleteOptions?: object): Promise<void> {
const collection = await this.ensureCollection();
await collection.deleteMany(
{
id: id,
},
deleteOptions,
);
}
async query(
query: VectorStoreQuery,
options?: object,
): Promise<VectorStoreQueryResult> {
const pipeline = [
{
$search: {
cosmosSearch: {
vector: query.queryEmbedding,
path: this.embeddingKey,
k: query.similarityTopK ?? 4,
},
returnStoredSource: true,
},
},
];
const collection = await this.ensureCollection();
const cursor = await collection.aggregate(pipeline);
const nodes: BaseNode[] = [];
const ids: string[] = [];
const similarities: number[] = [];
for await (const res of await cursor) {
const text = res[this.textKey];
const score = res.score;
const id = res[this.idKey];
const metadata = res[this.metadataKey];
const node = metadataDictToNode(metadata);
node.setContent(text);
ids.push(id);
nodes.push(node);
similarities.push(score);
}
const result = {
nodes,
similarities,
ids,
};
return result;
}
/**
* Creates an index on the collection with the specified index name during
* instance construction.
*
* Setting the numLists parameter correctly is important for achieving good
* accuracy and performance.
* Since the vector store uses IVF as the indexing strategy, you should
* create the index only after you have loaded a large enough sample
* documents to ensure that the centroids for the respective buckets are
* faily distributed.
*
* @param indexType Index Type for Mongo vCore index.
* @param dimensions Number of dimensions for vector similarity.
* The maximum number of supported dimensions is 2000.
* If no number is provided, it will be determined automatically by
* embedding a short text.
* @param similarity Similarity metric to use with the IVF index.
* Possible options are:
* - CosmosDBSimilarityType.COS (cosine distance)
* - CosmosDBSimilarityType.L2 (Euclidean distance)
* - CosmosDBSimilarityType.IP (inner product)
* @returns A promise that resolves when the index has been created.
*/
async createIndex(
dimensions: number | undefined = undefined,
indexType: "ivf" | "hnsw" | "diskann" = "ivf",
similarity: AzureCosmosDBMongoDBSimilarityType = AzureCosmosDBMongoDBSimilarityType.COS,
): Promise<void> {
let vectorLength = dimensions;
if (vectorLength === undefined) {
vectorLength = 1536;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const cosmosSearchOptions: any = {
kind: "",
similarity,
dimensions: vectorLength,
};
if (indexType === "hnsw") {
cosmosSearchOptions.kind = "vector-hnsw";
cosmosSearchOptions.m = this.indexOptions.m ?? 16;
cosmosSearchOptions.efConstruction =
this.indexOptions.efConstruction ?? 200;
} else if (indexType === "diskann") {
cosmosSearchOptions.kind = "vector-diskann";
cosmosSearchOptions.maxDegree = this.indexOptions.maxDegree ?? 40;
cosmosSearchOptions.lBuild = this.indexOptions.lBuild ?? 50;
cosmosSearchOptions.lSearch = this.indexOptions.lSearch ?? 40;
/** Default to IVF index */
} else {
cosmosSearchOptions.kind = "vector-ivf";
cosmosSearchOptions.numLists = this.indexOptions.numLists ?? 100;
}
const createIndexCommands = {
createIndexes: this.collection?.collectionName,
indexes: [
{
name: this.indexName,
key: { [this.embeddingKey]: "cosmosSearch" },
cosmosSearchOptions,
},
],
};
await this.database.command(createIndexCommands);
}
/**
* Checks if the specified index name during instance construction exists
* on the collection.
* @returns A promise that resolves to a boolean indicating if the index exists.
*/
async checkIndexExists(): Promise<boolean> {
const collection = await this.ensureCollection();
const indexes = await collection.listIndexes().toArray();
return indexes.some((index) => index.name === this.indexName);
}
/**
* Deletes the index specified during instance construction if it exists.
* @returns A promise that resolves when the index has been deleted.
*/
async deleteIndex(indexName: string): Promise<void> {
const collection = await this.ensureCollection();
const indexes = await collection.listIndexes().toArray();
const indexToDelete = indexes.find((index) => index.name === indexName);
if (indexToDelete) {
await collection.dropIndex(indexName);
}
}
}
@@ -176,7 +176,12 @@ export class PGVectorStore extends BaseVectorStore {
if ("clientConfig" in config) {
this.clientConfig = config.clientConfig;
} else {
if (config.client.constructor.name.includes("Vercel")) {
if (
config.client.constructor.name.includes("Vercel") ||
(!!(config.client as VercelPool).connect &&
!!(config.client as VercelPool).query &&
!(config.client as Sql).unsafe)
) {
this.isDBConnected = true;
this.db = fromVercelPool(config.client as unknown as VercelPool);
} else if (typeof config.client === "function") {
@@ -26,6 +26,7 @@ type PineconeParams = {
chunkSize?: number;
namespace?: string;
textKey?: string;
apiKey?: string;
} & VectorStoreBaseParams;
/**
@@ -48,6 +49,8 @@ export class PineconeVectorStore extends BaseVectorStore {
chunkSize: number;
textKey: string;
apiKey: string;
constructor(params?: PineconeParams) {
super(params);
this.indexName =
@@ -57,12 +60,19 @@ export class PineconeVectorStore extends BaseVectorStore {
params?.chunkSize ??
Number.parseInt(getEnv("PINECONE_CHUNK_SIZE") ?? "100");
this.textKey = params?.textKey ?? "text";
const apiKey = params?.apiKey ?? getEnv("PINECONE_API_KEY");
if (!apiKey) {
throw new Error("PINECONE_API_KEY is required");
}
this.apiKey = apiKey;
}
private async getDb(): Promise<Pinecone> {
if (!this.db) {
const { Pinecone } = await import("@pinecone-database/pinecone");
this.db = await new Pinecone();
this.db = new Pinecone({
apiKey: this.apiKey,
});
}
return Promise.resolve(this.db);
@@ -100,7 +110,7 @@ export class PineconeVectorStore extends BaseVectorStore {
*/
async add(embeddingResults: BaseNode<Metadata>[]): Promise<string[]> {
if (embeddingResults.length == 0) {
return Promise.resolve([]);
return [];
}
const idx: Index = await this.index();
@@ -110,10 +120,10 @@ export class PineconeVectorStore extends BaseVectorStore {
const chunk = nodes.slice(i, i + this.chunkSize);
const result = await this.saveChunk(idx, chunk);
if (!result) {
return Promise.reject(new Error("Failed to save chunk"));
throw new Error("Failed to save chunk");
}
}
return Promise.resolve([]);
return [];
}
protected async saveChunk(idx: Index, chunk: PineconeRecord[]) {
@@ -157,13 +167,19 @@ export class PineconeVectorStore extends BaseVectorStore {
topK: query.similarityTopK,
includeValues: true,
includeMetadata: true,
filter: filter,
};
if (filter) {
defaultOptions.filter = filter;
}
const idx = await this.index();
const results = await idx.query(defaultOptions);
const idList = results.matches.map((row) => row.id);
if (idList.length == 0) {
return { nodes: [], similarities: [], ids: [] };
}
const records: FetchResponse = await idx.fetch(idList);
const rows = Object.values(records.records);
@@ -179,13 +195,11 @@ export class PineconeVectorStore extends BaseVectorStore {
return node;
});
const ret = {
return {
nodes: nodes,
similarities: results.matches.map((row) => row.score || 999),
ids: results.matches.map((row) => row.id),
};
return Promise.resolve(ret);
}
/**
@@ -197,8 +211,8 @@ export class PineconeVectorStore extends BaseVectorStore {
return Promise.resolve();
}
toPineconeFilter(stdFilters?: MetadataFilters): object {
if (!stdFilters) return {};
toPineconeFilter(stdFilters?: MetadataFilters): object | undefined {
if (stdFilters == null) return undefined;
const transformCondition = (
condition: `${FilterCondition}` = "and",
@@ -1,4 +1,5 @@
export * from "./AstraDBVectorStore.js";
export * from "./AzureCosmosDBMongoVectorStore.js";
export * from "./AzureCosmosDBNoSqlVectorStore.js";
export * from "./ChromaVectorStore.js";
export * from "./MilvusVectorStore.js";
+13 -1
View File
@@ -65,7 +65,19 @@ export function metadataDictToNode(
}
} else {
nodeObj = JSON.parse(nodeContent);
nodeObj.metadata = rest;
nodeObj = {
...rest,
...options?.fallback,
...nodeObj,
};
nodeObj.metadata = {
...(options?.fallback &&
"metadata" in options.fallback &&
typeof options.fallback.metadata === "object"
? options?.fallback.metadata
: {}),
...rest,
};
}
// Note: we're using the name of the class stored in `_node_type`
+2 -2
View File
@@ -10,7 +10,7 @@
"@faker-js/faker": "^9.2.0",
"dotenv": "^16.4.5",
"llamaindex": "workspace:*",
"msw": "^2.6.0",
"vitest": "^2.1.4"
"msw": "^2.6.5",
"vitest": "^2.1.5"
}
}
+25
View File
@@ -1,5 +1,30 @@
# @llamaindex/node-parser
## 0.0.16
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 0.0.15
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 0.0.14
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 0.0.13
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/node-parser",
"version": "0.0.13",
"version": "0.0.16",
"description": "Node parser for LlamaIndex",
"type": "module",
"exports": {
@@ -44,8 +44,8 @@
"@types/html-to-text": "^9.0.4",
"@types/node": "^22.9.0",
"bunchee": "5.6.1",
"tree-sitter": "^0.22.0",
"web-tree-sitter": "^0.24.3"
"tree-sitter": "^0.22.1",
"web-tree-sitter": "^0.24.4"
},
"peerDependencies": {
"@llamaindex/core": "workspace:*",
+25
View File
@@ -1,5 +1,30 @@
# @llamaindex/anthropic
## 0.0.24
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 0.0.23
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 0.0.22
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 0.0.21
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/anthropic",
"description": "Anthropic Adapter for LlamaIndex",
"version": "0.0.21",
"version": "0.0.24",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -36,6 +36,6 @@
"@anthropic-ai/sdk": "0.32.1",
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"remeda": "^2.12.0"
"remeda": "^2.17.3"
}
}
+27
View File
@@ -1,5 +1,32 @@
# @llamaindex/clip
## 0.0.24
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
- @llamaindex/openai@0.1.40
## 0.0.23
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
- @llamaindex/openai@0.1.39
## 0.0.22
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
- @llamaindex/openai@0.1.38
## 0.0.21
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/clip",
"description": "Clip Embedding Adapter for LlamaIndex",
"version": "0.0.21",
"version": "0.0.24",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
+27
View File
@@ -1,5 +1,32 @@
# @llamaindex/deepinfra
## 0.0.24
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
- @llamaindex/openai@0.1.40
## 0.0.23
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
- @llamaindex/openai@0.1.39
## 0.0.22
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
- @llamaindex/openai@0.1.38
## 0.0.21
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/deepinfra",
"description": "Deepinfra Adapter for LlamaIndex",
"version": "0.0.21",
"version": "0.0.24",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+25
View File
@@ -1,5 +1,30 @@
# @llamaindex/groq
## 0.0.39
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/openai@0.1.40
## 0.0.38
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/openai@0.1.39
## 0.0.37
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/env@0.1.21
- @llamaindex/openai@0.1.38
## 0.0.36
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/groq",
"description": "Groq Adapter for LlamaIndex",
"version": "0.0.36",
"version": "0.0.39",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -35,6 +35,6 @@
"dependencies": {
"@llamaindex/env": "workspace:*",
"@llamaindex/openai": "workspace:*",
"groq-sdk": "0.6.1"
"groq-sdk": "0.8.0"
}
}
@@ -1,5 +1,32 @@
# @llamaindex/huggingface
## 0.0.24
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
- @llamaindex/openai@0.1.40
## 0.0.23
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
- @llamaindex/openai@0.1.39
## 0.0.22
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
- @llamaindex/openai@0.1.38
## 0.0.21
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/huggingface",
"description": "Huggingface Adapter for LlamaIndex",
"version": "0.0.21",
"version": "0.0.24",
"type": "module",
"types": "dist/index.d.ts",
"main": "dist/index.cjs",
+25
View File
@@ -1,5 +1,30 @@
# @llamaindex/ollama
## 0.0.31
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 0.0.30
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 0.0.29
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 0.0.28
### Patch Changes
+3 -3
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/ollama",
"description": "Ollama Adapter for LlamaIndex",
"version": "0.0.28",
"version": "0.0.31",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -35,7 +35,7 @@
"dependencies": {
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"ollama": "^0.5.9",
"remeda": "^2.12.0"
"ollama": "^0.5.10",
"remeda": "^2.17.3"
}
}
+25
View File
@@ -1,5 +1,30 @@
# @llamaindex/openai
## 0.1.40
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 0.1.39
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 0.1.38
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 0.1.37
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/openai",
"description": "OpenAI Adapter for LlamaIndex",
"version": "0.1.37",
"version": "0.1.40",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -35,6 +35,6 @@
"dependencies": {
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"openai": "^4.68.1"
"openai": "^4.72.0"
}
}
@@ -1,5 +1,30 @@
# @llamaindex/portkey-ai
## 0.0.24
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 0.0.23
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 0.0.22
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 0.0.21
### Patch Changes
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/portkey-ai",
"description": "Portkey Adapter for LlamaIndex",
"version": "0.0.21",
"version": "0.0.24",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -36,6 +36,6 @@
"@llamaindex/core": "workspace:*",
"@llamaindex/env": "workspace:*",
"portkey-ai": "0.1.16",
"remeda": "^2.12.0"
"remeda": "^2.17.3"
}
}
+24
View File
@@ -1,5 +1,29 @@
# @llamaindex/replicate
## 0.0.24
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 0.0.23
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 0.0.22
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 0.0.21
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/replicate",
"description": "Replicate Adapter for LlamaIndex",
"version": "0.0.21",
"version": "0.0.24",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+19
View File
@@ -1,5 +1,24 @@
# @llamaindex/vllm
## 0.0.10
### Patch Changes
- @llamaindex/openai@0.1.40
## 0.0.9
### Patch Changes
- @llamaindex/openai@0.1.39
## 0.0.8
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/openai@0.1.38
## 0.0.7
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/vllm",
"description": "vLLM Adapter for LlamaIndex",
"version": "0.0.7",
"version": "0.0.10",
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
+25
View File
@@ -1,5 +1,30 @@
# @llamaindex/readers
## 1.0.17
### Patch Changes
- Updated dependencies [d2b2722]
- @llamaindex/env@0.1.23
- @llamaindex/core@0.4.15
## 1.0.16
### Patch Changes
- Updated dependencies [969365c]
- @llamaindex/env@0.1.22
- @llamaindex/core@0.4.14
## 1.0.15
### Patch Changes
- 90d265c: chore: bump version
- Updated dependencies [90d265c]
- @llamaindex/core@0.4.13
- @llamaindex/env@0.1.21
## 1.0.14
### Patch Changes
+14
View File
@@ -0,0 +1,14 @@
{
"type": "module",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"edge-light": "./dist/index.edge-light.js",
"workerd": "./dist/index.workerd.js",
"default": "./dist/index.js"
}
},
"private": true
}
+23 -4
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/readers",
"description": "LlamaIndex Readers",
"version": "1.0.14",
"version": "1.0.17",
"type": "module",
"exports": {
"./node/hook": "./node/dist/hook.js",
@@ -142,6 +142,24 @@
"default": "./notion/dist/index.js"
}
},
"./obsidian": {
"edge-light": {
"types": "./obsidian/dist/index.edge-light.d.ts",
"default": "./obsidian/dist/index.edge-light.js"
},
"workerd": {
"types": "./obsidian/dist/index.workerd.d.ts",
"default": "./obsidian/dist/index.workerd.js"
},
"require": {
"types": "./obsidian/dist/index.d.cts",
"default": "./obsidian/dist/index.cjs"
},
"import": {
"types": "./obsidian/dist/index.d.ts",
"default": "./obsidian/dist/index.js"
}
},
"./pdf": {
"require": {
"types": "./pdf/dist/index.d.cts",
@@ -176,6 +194,7 @@
"markdown",
"mongo",
"notion",
"obsidian",
"pdf",
"text",
"node"
@@ -205,13 +224,13 @@
"@azure/cosmos": "^4.1.1",
"@discordjs/rest": "^2.3.0",
"@discoveryjs/json-ext": "^0.6.1",
"assemblyai": "^4.7.0",
"assemblyai": "^4.8.0",
"csv-parse": "^5.5.6",
"discord-api-types": "^0.37.98",
"discord-api-types": "^0.37.105",
"mammoth": "^1.7.2",
"mongodb": "^6.7.0",
"notion-md-crawler": "^1.0.0",
"papaparse": "^5.4.1",
"unpdf": "^0.11.0"
"unpdf": "^0.12.1"
}
}
+41
View File
@@ -0,0 +1,41 @@
import { type BaseReader, Document } from "@llamaindex/core/schema";
import * as fs from "node:fs";
import path from "node:path";
import { MarkdownReader } from "./markdown";
export class ObsidianReader implements BaseReader<Document> {
protected inputDir: string;
protected docs: Document[] = [];
constructor(inputDir: string) {
this.inputDir = inputDir;
}
private async processPath(file: fs.Dirent, filepath: string) {
if (file.isDirectory() && !file.name.startsWith(".")) {
await this.readFromPath(filepath);
} else if (file.isFile() && file.name.endsWith(".md")) {
await this.convertToDocuments(filepath);
} else {
console.log(`Skipping ${filepath}`);
}
}
private async readFromPath(dir: string) {
const files = await fs.promises.readdir(dir, { withFileTypes: true });
for (const file of files) {
const filepath = path.join(dir, file.name);
await this.processPath(file, filepath);
}
}
private async convertToDocuments(filepath: string) {
const content = await new MarkdownReader().loadData(filepath);
this.docs.push(...content);
}
async loadData(): Promise<Document[]> {
await this.readFromPath(this.inputDir);
return this.docs;
}
}
+3 -3
View File
@@ -4,13 +4,13 @@
"license": "MIT",
"type": "module",
"dependencies": {
"@assemblyscript/loader": "^0.27.27",
"@assemblyscript/loader": "^0.27.31",
"@types/node": "^22.9.0"
},
"devDependencies": {
"@swc/cli": "^0.5.0",
"@swc/core": "^1.7.22",
"assemblyscript": "^0.27.27",
"@swc/core": "^1.9.2",
"assemblyscript": "^0.27.31",
"typescript": "^5.6.3"
},
"engines": {
+2951 -2737
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -74,6 +74,9 @@
{
"path": "./e2e/examples/cloudflare-worker-agent/tsconfig.json"
},
{
"path": "./e2e/examples/cloudflare-hono/tsconfig.json"
},
{
"path": "./e2e/examples/nextjs-agent/tsconfig.json"
},
+57
View File
@@ -1,5 +1,62 @@
# @llamaindex/unit-test
## 0.0.34
### Patch Changes
- Updated dependencies [515f2c1]
- llamaindex@0.8.24
## 0.0.33
### Patch Changes
- @llamaindex/cloud@2.0.15
- @llamaindex/core@0.4.15
- llamaindex@0.8.23
- @llamaindex/node-parser@0.0.16
- @llamaindex/openai@0.1.40
- @llamaindex/readers@1.0.17
## 0.0.32
### Patch Changes
- Updated dependencies [819af45]
- llamaindex@0.8.22
- @llamaindex/cloud@2.0.14
- @llamaindex/core@0.4.14
- @llamaindex/node-parser@0.0.15
- @llamaindex/openai@0.1.39
- @llamaindex/readers@1.0.16
## 0.0.31
### Patch Changes
- Updated dependencies [83c3897]
- Updated dependencies [efa2211]
- llamaindex@0.8.21
## 0.0.30
### Patch Changes
- Updated dependencies [02b22da]
- llamaindex@0.8.20
## 0.0.29
### Patch Changes
- Updated dependencies [90d265c]
- @llamaindex/cloud@2.0.13
- @llamaindex/core@0.4.13
- llamaindex@0.8.19
- @llamaindex/node-parser@0.0.14
- @llamaindex/readers@1.0.15
- @llamaindex/openai@0.1.38
## 0.0.28
### Patch Changes
+6 -6
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/unit-test",
"private": true,
"version": "0.0.28",
"version": "0.0.34",
"type": "module",
"scripts": {
"test": "vitest run"
@@ -11,8 +11,8 @@
"@faker-js/faker": "^9.2.0",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"msw": "^2.6.0",
"vitest": "^2.1.4"
"msw": "^2.6.5",
"vitest": "^2.1.5"
},
"dependencies": {
"@llamaindex/cloud": "workspace:*",
@@ -24,9 +24,9 @@
"llamaindex": "workspace:*",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"tree-sitter": "^0.22.0",
"tree-sitter-javascript": "^0.23.0",
"tree-sitter-typescript": "^0.23.0",
"tree-sitter": "^0.22.1",
"tree-sitter-javascript": "^0.23.1",
"tree-sitter-typescript": "^0.23.2",
"zod": "^3.23.8"
}
}