diff --git a/docs/changelog/update.md b/docs/changelog/update.md index 9ea46feb..f5b5b2de 100644 --- a/docs/changelog/update.md +++ b/docs/changelog/update.md @@ -28,6 +28,7 @@ - [x] 补充 embedding 模型和 reranker 模型的配置说明 - [ ] 支持 MinerU 的解析方法 - [x] 优化 knowledge 文件夹下面的架构 +- [ ] Options 中添加网络搜索和绘制图片的选项,分别是用来调用工具 📝 **Base** diff --git a/src/agents/chatbot/tools.py b/src/agents/chatbot/tools.py index 0fc2a610..af9b8f0f 100644 --- a/src/agents/chatbot/tools.py +++ b/src/agents/chatbot/tools.py @@ -6,8 +6,8 @@ from langchain_core.tools import tool from src.agents.common.toolkits.mysql import get_mysql_tools from src.agents.common.tools import get_buildin_tools -from src.utils import logger from src.storage.minio import upload_image_to_minio +from src.utils import logger @tool diff --git a/src/knowledge/__init__.py b/src/knowledge/__init__.py index f4a342f9..ac213903 100644 --- a/src/knowledge/__init__.py +++ b/src/knowledge/__init__.py @@ -1,12 +1,12 @@ import os from ..config import config -from .implementations.chroma import ChromaKB -from .graph import GraphDatabase from .factory import KnowledgeBaseFactory -from .manager import KnowledgeBaseManager +from .graph import GraphDatabase +from .implementations.chroma import ChromaKB from .implementations.lightrag import LightRagKB from .implementations.milvus import MilvusKB +from .manager import KnowledgeBaseManager # 注册知识库类型 KnowledgeBaseFactory.register("chroma", ChromaKB, {"description": "基于 ChromaDB 的轻量级向量知识库,适合开发和小规模"}) diff --git a/src/knowledge/implementations/__init__.py b/src/knowledge/implementations/__init__.py index abc0ecd2..30c59487 100644 --- a/src/knowledge/implementations/__init__.py +++ b/src/knowledge/implementations/__init__.py @@ -7,7 +7,7 @@ """ from .chroma import ChromaKB -from .milvus import MilvusKB from .lightrag import LightRagKB +from .milvus import MilvusKB __all__ = ["ChromaKB", "MilvusKB", "LightRagKB"] diff --git a/src/knowledge/implementations/chroma.py b/src/knowledge/implementations/chroma.py index 1dfe70b3..9e7a3db8 100644 --- a/src/knowledge/implementations/chroma.py +++ b/src/knowledge/implementations/chroma.py @@ -7,6 +7,7 @@ import chromadb from chromadb.config import Settings from chromadb.utils.embedding_functions import OpenAIEmbeddingFunction +from src.knowledge.base import KnowledgeBase from src.knowledge.indexing import process_file_to_markdown, process_url_to_markdown from src.knowledge.utils.kb_utils import ( get_embedding_config, @@ -14,7 +15,6 @@ from src.knowledge.utils.kb_utils import ( split_text_into_chunks, split_text_into_qa_chunks, ) -from src.knowledge.base import KnowledgeBase from src.utils import logger diff --git a/src/knowledge/implementations/lightrag.py b/src/knowledge/implementations/lightrag.py index da4a5af6..2f055532 100644 --- a/src/knowledge/implementations/lightrag.py +++ b/src/knowledge/implementations/lightrag.py @@ -9,9 +9,9 @@ from lightrag.utils import EmbeddingFunc, setup_logger from neo4j import GraphDatabase from pymilvus import connections, utility +from src.knowledge.base import KnowledgeBase from src.knowledge.indexing import process_file_to_markdown, process_url_to_markdown from src.knowledge.utils.kb_utils import get_embedding_config, prepare_item_metadata -from src.knowledge.base import KnowledgeBase from src.utils import hashstr, logger LIGHTRAG_LLM_PROVIDER = os.getenv("LIGHTRAG_LLM_PROVIDER", "siliconflow") diff --git a/src/knowledge/implementations/milvus.py b/src/knowledge/implementations/milvus.py index aa6554b3..36592332 100644 --- a/src/knowledge/implementations/milvus.py +++ b/src/knowledge/implementations/milvus.py @@ -6,6 +6,7 @@ from typing import Any from pymilvus import Collection, CollectionSchema, DataType, FieldSchema, connections, db, utility +from src.knowledge.base import KnowledgeBase from src.knowledge.indexing import process_file_to_markdown, process_url_to_markdown from src.knowledge.utils.kb_utils import ( get_embedding_config, @@ -13,7 +14,6 @@ from src.knowledge.utils.kb_utils import ( split_text_into_chunks, split_text_into_qa_chunks, ) -from src.knowledge.base import KnowledgeBase from src.models.embed import OtherEmbedding from src.utils import hashstr, logger diff --git a/src/knowledge/manager.py b/src/knowledge/manager.py index 08a2bf49..1fcf6274 100644 --- a/src/knowledge/manager.py +++ b/src/knowledge/manager.py @@ -3,8 +3,8 @@ import json import os from datetime import datetime -from src.knowledge.factory import KnowledgeBaseFactory from src.knowledge.base import KBNotFoundError, KnowledgeBase +from src.knowledge.factory import KnowledgeBaseFactory from src.utils import logger diff --git a/src/storage/db/__init__.py b/src/storage/db/__init__.py index 84ab0cf4..151c6e21 100644 --- a/src/storage/db/__init__.py +++ b/src/storage/db/__init__.py @@ -3,18 +3,17 @@ from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() # 导入所有模型,确保它们被注册到 Base.metadata +# 导入数据库管理器 +from src.storage.db.manager import db_manager # noqa: E402 from src.storage.db.models import ( # noqa: E402, F401 - User, - OperationLog, - Thread, KnowledgeDatabase, KnowledgeFile, KnowledgeNode, + OperationLog, + Thread, + User, ) # noqa: E402 -# 导入数据库管理器 -from src.storage.db.manager import db_manager # noqa: E402 - __all__ = [ "Base", "User", diff --git a/src/storage/db/manager.py b/src/storage/db/manager.py index e8340164..6623acf8 100644 --- a/src/storage/db/manager.py +++ b/src/storage/db/manager.py @@ -5,8 +5,8 @@ from contextlib import contextmanager from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker -from src.storage.db.models import Base, User from src import config +from src.storage.db.models import Base, User from src.utils import logger try: diff --git a/src/storage/db/models.py b/src/storage/db/models.py index 050d3c53..ce5b8972 100644 --- a/src/storage/db/models.py +++ b/src/storage/db/models.py @@ -1,9 +1,9 @@ import time from sqlalchemy import JSON, Column, DateTime, ForeignKey, Integer, String, Text +from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship from sqlalchemy.sql import func -from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() diff --git a/src/storage/minio/__init__.py b/src/storage/minio/__init__.py index e55be946..ad7c2dd3 100644 --- a/src/storage/minio/__init__.py +++ b/src/storage/minio/__init__.py @@ -5,8 +5,7 @@ MinIO 存储模块 # 导出核心功能 from .client import MinIOClient, StorageError, UploadResult, get_minio_client, upload_image_to_minio - -from .utils import get_file_size, generate_unique_filename +from .utils import generate_unique_filename, get_file_size # 为了向后兼容,导出常用的函数 __all__ = [ diff --git a/src/storage/minio/client.py b/src/storage/minio/client.py index 8d7b671b..9e2a4087 100644 --- a/src/storage/minio/client.py +++ b/src/storage/minio/client.py @@ -9,7 +9,6 @@ from io import BytesIO from minio import Minio from minio.error import S3Error - from src.utils import logger diff --git a/web/src/components/AgentConfigSidebar.vue b/web/src/components/AgentConfigSidebar.vue index 63d1fab3..eaa1ae20 100644 --- a/web/src/components/AgentConfigSidebar.vue +++ b/web/src/components/AgentConfigSidebar.vue @@ -645,7 +645,7 @@ watch(() => props.isOpen, (newVal) => { position: sticky; bottom: 16px; padding: 12px 0; - border-top: 1px solid var(--gray-200); + border-top: 1px solid var(--gray-100); background: #fff; // min-width: 400px; z-index: 10; @@ -689,6 +689,7 @@ watch(() => props.isOpen, (newVal) => { } .config-form-content { + margin-bottom: 100px; .config-form { .config-alert { margin-bottom: 16px; @@ -798,7 +799,7 @@ watch(() => props.isOpen, (newVal) => { justify-content: space-between; align-items: center; padding: 6px 12px; - background: var(--gray-50); + background: var(--gray-20); border-radius: 8px; border: 1px solid var(--gray-200); margin-bottom: 8px; @@ -808,7 +809,7 @@ watch(() => props.isOpen, (newVal) => { align-items: center; gap: 8px; font-size: 13px; - color: var(--gray-700); + color: var(--gray-900); .tools-count { color: var(--gray-900); @@ -825,7 +826,7 @@ watch(() => props.isOpen, (newVal) => { .select-tools-btn { background: var(--main-color); border: none; - border-radius: 6px; + border-radius: 4px; height: 28px; font-size: 12px; font-weight: 500; @@ -845,9 +846,9 @@ watch(() => props.isOpen, (newVal) => { .tool-tag { margin: 0; padding: 4px 8px; - border-radius: 4px; - background: var(--gray-100); - border: 1px solid var(--gray-300); + border-radius: 12px; + background: var(--gray-50); + border: 1px solid var(--gray-200); color: var(--gray-900); font-size: 12px;