Commit Graph
539 Commits
Author SHA1 Message Date
yepper 155866ce52 对齐 docs 和代码里 storage config 的 workspace 属性 (#289)
* 对齐 docs 和代码里 storage config 的 workspace 属性

* workspace 保持统一 ./data

* docs: update configuration docs with new parameters

- Add `max_concurrent` parameter for embedding configuration
- Rename `base_url` to `api_base` in VLM configuration
- Add `thinking` and `max_concurrent` parameters for VLM
- Update AGFS backend options and timeout value
2026-02-25 22:24:05 +08:00
kkkwjxandqin-ctx 37b5d0d359 Multi tenant (#283)
* test: add multi-tenant isolation unit coverage

* feat: implement phase2 multi-tenant context isolation

* feat: multi tenant

* fix: resolve multi-tenant merge conflicts

* feat: multi tenant

* fix: enforce tenant isolation for session get

* tos config

---------

Co-authored-by: qin-ctx <qinhaojie.exe@bytedance.com>
2026-02-25 18:25:36 +08:00
MaojiaShengandopenviking a412c7d164 feat: break change, remove is_leaf scalar and use level instead (#271)
* feat: wrap log configs in LogConfig, add log rotation, fix empty file creation
- Create new LogConfig class to wrap all log-related configuration
- Update OpenVikingConfig to use nested log config instead of separate fields
- Add log rotation support with TimedRotatingFileHandler in logger.py
- Add configure_uvicorn_logging to make uvicorn use OpenViking's logging config
- Fix empty file being created in current directory by properly handling log.output=file in logging_init.py
- Update examples/ov.conf.example to use new nested log config structure
- Update __init__.py to export LogConfig and initialize_openviking_config

* docs: help to configure log and workspace

* feat: break change, remove is_leaf scalar and use level instead

* feat: break change, remove is_leaf scalar and use level instead

* feat: rust cli add-resource support zip

---------

Co-authored-by: openviking <openviking@example.com>
2026-02-25 13:01:41 +08:00
SeanZ ea93ad04e9 Feat/add parts support to http api (#270)
* feat(session): add parts support to HTTP API add_message endpoint

- Add optional 'parts' parameter to AddMessageRequest
- Support two modes: simple (content string) and parts (array)
- Update LocalClient and HTTP Client for consistency
- Update Chinese and English documentation

This enables HTTP API clients to store full Part information
(TextPart, ContextPart, ToolPart) instead of just text content,
achieving feature parity with the Python SDK.

* fix(storage): wrap AGFSClientError as FileNotFoundError in read_file

When reading a non-existent file, agfs.read() raises AGFSClientError
which was not being caught by Session.load()'s exception handler.
This caused the server to return 422 errors instead of gracefully
handling missing session files.

Now read_file() catches all exceptions from agfs.read() and re-raises
them as FileNotFoundError, ensuring consistent error handling across
the codebase.

* fix(storage): distinguish error types in VikingFS read operations

Map AGFSClientError to appropriate Python exceptions (FileNotFoundError,
PermissionError, IOError) instead of always raising FileNotFoundError.
This allows callers to handle file-not-found vs network errors differently.

* fix(client): restore read params and refactor part conversion

- Restore offset/limit parameters in HTTPClient and LocalClient read()
  methods that were accidentally removed
- Extract part_from_dict() to openviking/message/part.py to reduce
  code duplication between LocalClient and sessions router
2026-02-25 12:42:18 +08:00
Qin Haojie b92f2c0fc7 feat: 多租户 Phase 1 - API 层多租户能力 (#260)
* doc: update design

* feat: multi_tenant

* feat: multi_tenant

* feat: multi tenant

* feat: multi tenant

* fix: tests

* fix: rust cli
2026-02-24 13:40:44 +08:00
qin-ctx 332224047e docs : update wechat (#264)
* fix/update_wechat

* fix/update_wechat
2026-02-24 11:40:26 +08:00
baojun-zhang cab8ea540b feat: support dynamic project_name config in VectorDB / volcengine (#253)
* feat: support dynamic project_name config  in VectorDB / volcengine

* feat: support dynamic project_name config  in VectorDB / volcengine

* feat: support dynamic project_name config  in VectorDB / volcengine

* feat: support dynamic project_name config  in VectorDB / volcengine

* feat: support dynamic project_name config  in VectorDB / volcengine
2026-02-22 23:37:17 +08:00
Han Xiao ea2a508a9c feat: add Jina AI embedding provider (#245) 2026-02-22 18:23:43 +08:00
kkkwjx a06219968b refactor(memory): redesign extraction/dedup flow and add conflict-aware delete handling (#225)
- refactor session memory pipeline across extractor, deduplicator, and compressor
  - introduce richer dedup decisions and per-memory actions (skip/create/none, merge/delete)
  - improve dedup prompt contracts and memory merge/extraction templates
  - update storage schema/validation/vector backend to support new memory behavior
  - add examples/memory_demo.py and refresh session concept docs for the new flow
2026-02-20 12:11:43 +08:00
MaojiaSheng 8af2b03496 fix: fix the difference of python CLI and rust CLI (#188)
* fix: optimize grep and find output

* fix: optimize grep and find output

* fix: --json is not useful, remove

* fix: show full uri
2026-02-14 23:17:16 +08:00
Yaoyao c1380620f2 Update 01-about-us.md-英文版微信群二维码更新 (#185) 2026-02-14 20:30:20 +08:00
Yaoyao 6de4791da2 Update 01-about-us.md-微信群二维码地址更新 (#184)
* Update 01-about-us.md-微信群二维码地址更新

无

* Update 01-about-us.md-图片文件名更改

刚刚发现.jpeg打成.jpg了...
2026-02-14 20:27:05 +08:00
Yaoyao dbaba28e3b Update 03-quickstart-server.md (#174) 2026-02-14 19:58:05 +08:00
Yaoyao ec3d151c99 上传最新的微信群二维码 (#183) 2026-02-14 19:56:07 +08:00
Yaoyao 66d2a36b3e Update 03-quickstart-server.md-en version (#177)
* Update 03-quickstart-server.md

一键翻译了英文版

* Update 03-quickstart-server.md-CLI update

基于一致性和调用方式更新了Connect with CLI,更换了原先使用的python -m方式
2026-02-14 16:40:32 +08:00
MaojiaSheng 1b42fec179 fix: tree uri output error, and validate ov.conf before start (#169)
* fix: temp dir check failed

* feat: make temp uri readable, and enlarge timeout of add-resource

* fix: server uvloop conflicts with nest_asyncio

* fix: tree uri output error

* fix: forbid unknown config field, early failed

* docs: update readme
2026-02-14 11:12:13 +08:00
MaojiaSheng ead9817791 Revert "feat: support dynamic project_name config in VectorDB / volcengine (…" (#167)
This reverts commit a469c416f9.
2026-02-13 23:09:20 +08:00
baojun-zhang a469c416f9 feat: support dynamic project_name config in VectorDB / volcengine (#161)
* feat: support dynamic project_name config  in VectorDB / volcengine

* feat: support dynamic project_name config  in VectorDB / volcengine

* feat: support dynamic project_name config  in VectorDB / volcengine

* feat: support dynamic project_name config  in VectorDB / volcengine
2026-02-13 20:40:41 +08:00
qin-ctx d6aee4977f doc: add multi-tenant-design (#155) 2026-02-13 15:49:27 +08:00
MaojiaSheng ef954073f3 efactor: to accelerate cli launch speed, refactor openviking_cli dir (#151)
* fix: remove await asyncio and call agfs directly

* feat: mv cli out of openviking

* refactor: mv cli out of openviking

* refactor: mv cli out of openviking

* refactor: mv cli out of openviking

* refactor: mv cli out of openviking

* refactor: mv cli out of openviking

* refactor: mv cli out of openviking
2026-02-12 22:25:16 +08:00
MaojiaSheng db7319f4a2 refactor: to accelerate cli launch speed, refactor openviking_cli dir (#150)
* fix: remove await asyncio and call agfs directly

* feat: mv cli out of openviking

* refactor: mv cli out of openviking

* refactor: mv cli out of openviking
2026-02-12 22:12:50 +08:00
MaojiaSheng 11d6a1ad25 Transaction store (#136)
* fix: remove await asyncio and call agfs directly

* feat: add transaction storage

* feat: init transaction_manager when start

* feat: add transaction again, no check

* feat: add transaction manager and its observer, but without any working code
2026-02-12 13:15:41 +08:00
qin-ctx 002e14087f refactor(client): 拆分 HTTP 客户端,分离嵌入模式与 HTTP 模式 (#141)
* refactor(client): 拆分 HTTP 客户端,分离嵌入模式与 HTTP 模式

- 将 HTTPClient 重命名为 AsyncHTTPClient,新增 SyncHTTPClient 同步封装
- AsyncOpenViking/SyncOpenViking 仅保留嵌入模式,HTTP 模式使用独立的 AsyncHTTPClient/SyncHTTPClient
- HTTP 客户端支持从 ovcli.conf 自动加载 url/api_key
- 移除客户端构造函数中的 user 参数,统一使用默认用户
- 简化 CLIContext,直接使用 SyncHTTPClient
- 简化 VikingFS._uri_to_path 实现
- 更新文档、示例和测试适配新 API

* fix queue
2026-02-12 12:25:54 +08:00
qin-ctx 6d55bf4aa1 feat: 新增 Bash CLI 基础框架与完整命令实现 (T3 + T5) (#132)
* feat: 新增 Typer CLI 并统一配置加载机制

引入基于 Typer 的完整 CLI 模块 (openviking/cli),支持 resources、
sessions、search、filesystem、content、relations、pack、debug、
observer、system 等子命令。

新增统一配置加载器 (config_loader),采用三级解析链(显式路径 →
环境变量 → ~/.openviking/),同时服务于 server (ov.conf) 和
CLI (ovcli.conf)。

精简 AsyncOpenViking / SyncOpenViking 客户端,移除 service 模式
(vectordb_url / agfs_url) 和环境变量回退逻辑,仅保留 embedded
和 HTTP 两种模式。

同步更新中英文文档、示例和测试。

* fix: remove user  when create session

* fix: tests

* fix: tests
2026-02-11 15:53:10 +08:00
MaojiaSheng a4b346c736 feat: use a default dir ~/.openviking to store configuration, fix win… (#120)
* feat: use a default dir ~/.openviking to store configuration, fix windows

* docs: update 身份与隔离
2026-02-10 18:11:19 +08:00
MaojiaSheng c24c091de1 Doc: suggest use ~/.openviking/ov.conf as a default configure path (#119)
* feat: add code parser, not tested

* feat: rename CodeParser to CodeRepositoryParser

* fix: code parser data uploading

* fix: code parser data uploading

* fix: code parsing

* feat: protect binary files to summary and vectorize

* Update viking_fs.py

* feat: use a default dir ~/.openviking to store configuration
2026-02-10 14:31:17 +08:00
chuanbao666 240040362a docs: update docs and github workflows python version, python>=3.10 (#118) 2026-02-10 12:01:46 +08:00
qin-ctx 3165ffa0da feat: add HTTP Server and Python HTTP Client (T2 & T4) (#109)
* feat: add Server/Client architecture with HTTP API and restructure documentation

  - Implement FastAPI-based HTTP server (openviking/server/) with REST API
  - Add client abstraction layer (LocalClient, HTTPClient, BaseClient)
  - Add CLI entry point (python -m openviking serve)
  - Fix bugs: session.session_id, link/unlink param names, hmac.compare_digest
  - Restructure docs: remove numbered prefixes, add guides/, rewrite API reference
    with both Python SDK and HTTP API (curl) examples (en/zh)
  - Add quickstart-server, deployment, authentication, monitoring guides
  - Update examples and design docs to reflect implementation

* 提供单测 和 文档

* Merge branch 'main' into feature/server_client

* feat: add server/client examples and server tests

* fix: cross-references

* fix : tests
2026-02-09 21:12:15 +08:00
kkkwjx 9368d838f7 feat: add search_with_sparse_logit_alpha (#71) 2026-02-05 21:28:12 +08:00
MaojiaSheng a9b59cce87 support small github code repos (#70)
* feat: add code parser, not tested

* feat: rename CodeParser to CodeRepositoryParser

* fix: code parser data uploading

* fix: code parser data uploading

* fix: code parsing

* feat: protect binary files to summary and vectorize

* Update viking_fs.py
2026-02-05 19:18:10 +08:00
qin-ctx 643c1e4214 refactor: extract ObserverService from DebugService for cleaner status access API (#59)
- Create ObserverService class with queue/vikingdb/vlm/system properties
- DebugService holds ObserverService as a member
- Add client.observer property, enabling print(client.observer.vikingdb) syntax
- Add __str__ method to ComponentStatus and SystemStatus for direct printing
- Create dedicated debug API documentation (07-debug.md)
- Update architecture docs with new DebugService description
- Update unit tests
2026-02-05 15:37:16 +08:00
qin-ctx ef23bdc444 refactor: extract Service layer from async_client (#50)
* refactor: extract Service layer from async_client

Extract business logic from async_client.py into independent Service layer
to decouple business logic from transport layer, enabling reuse across
HTTP Server and CLI.

New files:
- openviking/exceptions.py: Unified exception classes based on gRPC status codes
- openviking/service/core.py: OpenVikingService main class
- openviking/service/fs_service.py: File system operations (ls, mkdir, rm, mv, etc.)
- openviking/service/resource_service.py: Resource import and skill addition
- openviking/service/search_service.py: Semantic search (find, search)
- openviking/service/session_service.py: Session management
- openviking/service/relation_service.py: Relation management (link, unlink)
- openviking/service/pack_service.py: Import/export ovpack operations

Modified:
- openviking/async_client.py: Refactored as compatibility layer delegating to OpenVikingService

* feat: add DebugService for system status and health check

- Add DebugService with get_queue_status, get_vikingdb_status,get_vlm_status, get_system_status, and is_healthy methods
- Replace observers property with get_status() and is_healthy()  in async_client and sync_client
- Update API docs (zh/en) and architecture docs
- Add unit tests for DebugService

* fix: debug service test
2026-02-04 21:54:34 +08:00
qin-ctx 26930c0104 docs: add server cli design (#46) 2026-02-04 16:58:03 +08:00
kkkwjx 55d1690a85 feat: rename backend to provider for embedding and vlm (#24) 2026-02-02 17:00:41 +08:00
qin-ctx 33d5d3a5e1 docs: faq 2026-01-30 12:34:10 +08:00
qin-ctx acfdbda1d2 docs: update_readme (#12) 2026-01-30 11:46:19 +08:00
qin-ctx b5d8149dd9 Revert "fix: use provider instead of backend"
This reverts commit 69e141fd88.
2026-01-29 20:45:33 +08:00
qin-ctx 69e141fd88 fix: use provider instead of backend 2026-01-29 20:39:06 +08:00
qin-ctx f98dc0ed1c first commit 2026-01-29 20:29:19 +08:00