Skip to content

Commit e075485

Browse files
Enhance version management and update asset references in OpenFox
- Improved version retrieval in `__init__.py` using `setuptools_scm` for better version handling. - Added a new router for version information in `version.py`, providing an API endpoint to retrieve the current package version. - Updated `OpenFoxAgent` to include the new version router. - Refactored knowledge path resolution in `knowledge.py` to use a constant for improved clarity. - Updated asset references in `index.html` to new versions for better performance and maintainability. - Introduced new JavaScript files for components and removed deprecated assets.
1 parent 6428b94 commit e075485

48 files changed

Lines changed: 325 additions & 84 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

openfox/__init__.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,12 @@
66

77
__version__ = _pkg_version("openfox")
88
except Exception:
9-
__version__ = "0+unknown"
9+
try:
10+
from pathlib import Path
11+
12+
from setuptools_scm import get_version as _scm_get_version
13+
14+
_repo_root = Path(__file__).resolve().parent.parent
15+
__version__ = _scm_get_version(root=str(_repo_root), relative_to=__file__)
16+
except Exception:
17+
__version__ = "0+unknown"

openfox/core/agent.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from openfox.interfaces.feishu import Feishu
1212
from openfox.routers import config
1313
from openfox.routers import skills
14+
from openfox.routers import version
1415
from openfox.tools.config import ConfigTools
1516
from openfox.tools.feishu import FeishuTools
1617
from openfox.utils.const import DB_PATH, SKILLS_PATH
@@ -90,4 +91,5 @@ def __init__(self):
9091
self.app = self.os.get_app()
9192
self.app.include_router(config.get_router(self.config_tools, settings))
9293
self.app.include_router(skills.get_router(self.agent, settings))
94+
self.app.include_router(version.get_router(settings))
9395
install_web_routes(self.app)

openfox/core/knowledge.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,13 @@
77

88
from agno.db.sqlite import AsyncSqliteDb
99
from agno.knowledge.knowledge import Knowledge
10-
from agno.utils.log import logger
1110
from agno.vectordb.chroma import ChromaDb
1211

1312
from openfox.schemas.config import Config
14-
from openfox.utils.const import OPENFOX_HOME_PATH
13+
from openfox.utils.const import CHROMADB_PATH
1514
from openfox.utils.knowledge import LiteLLMEmbedder, LiteLLMReranker
1615

1716

18-
def _resolve_chroma_path(path_str: str) -> str:
19-
p = Path(path_str)
20-
if p.is_absolute():
21-
return str(p.resolve())
22-
OPENFOX_HOME_PATH.mkdir(parents=True, exist_ok=True)
23-
return str((OPENFOX_HOME_PATH / p).resolve())
24-
25-
2617
def _nonempty(s: str) -> bool:
2718
return bool(s and s.strip())
2819

@@ -66,7 +57,7 @@ def build_knowledge(config: Config, contents_db: AsyncSqliteDb) -> Optional[Know
6657

6758
kcfg = config.knowledge
6859
vc = kcfg.vector_db
69-
path = _resolve_chroma_path(vc.path)
60+
path = str(CHROMADB_PATH.resolve())
7061
Path(path).parent.mkdir(parents=True, exist_ok=True)
7162

7263
embedder = _embedder_from_config(config)

openfox/routers/version.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"""HTTP API for OpenFox package version."""
2+
3+
from __future__ import annotations
4+
5+
from agno.os.settings import AgnoAPISettings
6+
from fastapi import APIRouter, Depends
7+
from fastapi.responses import JSONResponse
8+
9+
from openfox import __version__
10+
11+
12+
def get_router(settings: AgnoAPISettings) -> APIRouter:
13+
from agno.os.auth import get_authentication_dependency
14+
15+
router = APIRouter(tags=["OpenFox"])
16+
auth_dep = get_authentication_dependency(settings)
17+
18+
@router.get("/expand/version")
19+
async def get_version(_auth: bool = Depends(auth_dep)) -> JSONResponse:
20+
"""Return current OpenFox package version."""
21+
return JSONResponse(status_code=200, content={"version": __version__})
22+
23+
return router

openfox/schemas/config.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class EmbedderConfig(BaseModel):
6666
api_base: str = Field(default="https://dashscope.aliyuncs.com/compatible-mode/v1", description="API base; empty uses llm.api_base")
6767
request_params: Optional[Dict[str, Any]] = Field(default=None, description="Extra litellm.embedding params")
6868
enable_batch: bool = Field(default=False, description="Use batch async embedding when supported")
69-
batch_size: int = Field(default=100, description="Batch size")
69+
batch_size: int = Field(default=20, description="Batch size")
7070

7171

7272
class RerankerConfig(BaseModel):
@@ -86,12 +86,8 @@ class ChromaConfig(BaseModel):
8686
name: str = Field(default="OpenFox Knowledge", description="Knowledge display name")
8787
description: str = Field(default="OpenFox Knowledge", description="Description")
8888
id: Optional[str] = Field(default=None, description="Optional Chroma instance id")
89-
path: str = Field(
90-
default="chromadb",
91-
description="Storage path; relative paths resolve under ~/.openfox",
92-
)
9389
distance: Distance = Field(default=Distance.cosine, description="Distance metric")
94-
persistent_client: bool = Field(default=False, description="Use Chroma persistent client")
90+
persistent_client: bool = Field(default=True, description="Use Chroma persistent client")
9591
search_type: SearchType = Field(default=SearchType.vector, description="vector | keyword | hybrid")
9692
hybrid_rrf_k: int = Field(default=60, description="RRF k for hybrid search")
9793
batch_size: Optional[int] = Field(default=None, description="Chroma batch size")

openfox/static/web/assets/Checkbox-BJKtI6YA.js renamed to openfox/static/web/assets/Checkbox-_Hz_R68k.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openfox/static/web/assets/CollapsibleTrigger-Cf3Ukefo.js renamed to openfox/static/web/assets/CollapsibleTrigger-DBRREBVD.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)