Skip to content

[Bug] 无法创建知识库,报错"name 'SuperKMeans' is not defined" #9392

Description

@jin6yang

What happened / 发生了什么

无法创建知识库,报错创建知识库失败: name 'SuperKMeans' is not defined

Reproduce / 如何复现?

配置好正确的嵌入模型填好相关信息后,创建知识库,即可稳定复现

AstrBot version, deployment method (e.g., Windows Docker Desktop deployment), provider used, and messaging platform used. / AstrBot 版本、部署方式(如 Windows Docker Desktop 部署)、使用的提供商、使用的消息平台适配器

4.26.7 Desktop

OS

Windows

Logs / 报错日志

[2026-07-26 14:16:34.704] [Core]
[ERRO]
[v4.26.7] [knowledge_base.kb_mgr:140]: 创建知识库失败
Traceback (most recent call last):
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_mgr.py", line 132, in create_kb
    await kb_helper.initialize()
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_helper.py", line 145, in initialize
    await self._ensure_vec_db()
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_helper.py", line 187, in _ensure_vec_db
    vec_db = FaissVecDB(
             ^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\db\vec_db\faiss_impl\vec_db.py", line 29, in __init__
    self.embedding_storage = EmbeddingStorage(
                             ^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\db\vec_db\faiss_impl\embedding_storage.py", line 9, in __init__
    import faiss
  File "D:\Application\AstrBot\backend\python\Lib\site-packages\faiss\__init__.py", line 127, in <module>
    class_wrappers.handle_SuperKMeans(SuperKMeans)
                                      ^^^^^^^^^^^
NameError: name 'SuperKMeans' is not defined
[2026-07-26 14:16:34.745] [Core]
[ERRO]
[v4.26.7] [api.knowledge_bases:67]: 创建知识库失败: name 'SuperKMeans' is not defined
Traceback (most recent call last):
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\dashboard\api\knowledge_bases.py", line 59, in _run
    result = await run_maybe_async(operation)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\dashboard\async_utils.py", line 20, in run_maybe_async
    return await resolve_maybe_awaitable(result)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\dashboard\async_utils.py", line 12, in resolve_maybe_awaitable
    value = await cast(Awaitable[T], value)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\dashboard\services\knowledge_base_service.py", line 354, in create_kb
    kb_helper = await kb_manager.create_kb(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_mgr.py", line 132, in create_kb
    await kb_helper.initialize()
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_helper.py", line 145, in initialize
    await self._ensure_vec_db()
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_helper.py", line 187, in _ensure_vec_db
    vec_db = FaissVecDB(
             ^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\db\vec_db\faiss_impl\vec_db.py", line 29, in __init__
    self.embedding_storage = EmbeddingStorage(
                             ^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\db\vec_db\faiss_impl\embedding_storage.py", line 9, in __init__
    import faiss
  File "D:\Application\AstrBot\backend\python\Lib\site-packages\faiss\__init__.py", line 127, in <module>
    class_wrappers.handle_SuperKMeans(SuperKMeans)
                                      ^^^^^^^^^^^
NameError: name 'SuperKMeans' is not defined[2026-07-26 14:16:34.704] [Core]
[ERRO]
[v4.26.7] [knowledge_base.kb_mgr:140]: 创建知识库失败
Traceback (most recent call last):
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_mgr.py", line 132, in create_kb
    await kb_helper.initialize()
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_helper.py", line 145, in initialize
    await self._ensure_vec_db()
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_helper.py", line 187, in _ensure_vec_db
    vec_db = FaissVecDB(
             ^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\db\vec_db\faiss_impl\vec_db.py", line 29, in __init__
    self.embedding_storage = EmbeddingStorage(
                             ^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\db\vec_db\faiss_impl\embedding_storage.py", line 9, in __init__
    import faiss
  File "D:\Application\AstrBot\backend\python\Lib\site-packages\faiss\__init__.py", line 127, in <module>
    class_wrappers.handle_SuperKMeans(SuperKMeans)
                                      ^^^^^^^^^^^
NameError: name 'SuperKMeans' is not defined
[2026-07-26 14:16:34.745] [Core]
[ERRO]
[v4.26.7] [api.knowledge_bases:67]: 创建知识库失败: name 'SuperKMeans' is not defined
Traceback (most recent call last):
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\dashboard\api\knowledge_bases.py", line 59, in _run
    result = await run_maybe_async(operation)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\dashboard\async_utils.py", line 20, in run_maybe_async
    return await resolve_maybe_awaitable(result)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\dashboard\async_utils.py", line 12, in resolve_maybe_awaitable
    value = await cast(Awaitable[T], value)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\dashboard\services\knowledge_base_service.py", line 354, in create_kb
    kb_helper = await kb_manager.create_kb(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_mgr.py", line 132, in create_kb
    await kb_helper.initialize()
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_helper.py", line 145, in initialize
    await self._ensure_vec_db()
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\knowledge_base\kb_helper.py", line 187, in _ensure_vec_db
    vec_db = FaissVecDB(
             ^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\db\vec_db\faiss_impl\vec_db.py", line 29, in __init__
    self.embedding_storage = EmbeddingStorage(
                             ^^^^^^^^^^^^^^^^^
  File "\\?\D:\Application\AstrBot\backend\app\astrbot\core\db\vec_db\faiss_impl\embedding_storage.py", line 9, in __init__
    import faiss
  File "D:\Application\AstrBot\backend\python\Lib\site-packages\faiss\__init__.py", line 127, in <module>
    class_wrappers.handle_SuperKMeans(SuperKMeans)
                                      ^^^^^^^^^^^
NameError: name 'SuperKMeans' is not defined

Are you willing to submit a PR? / 你愿意提交 PR 吗?

  • Yes!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:coreThe bug / feature is about astrbot's core, backendbugSomething isn't workingfeature:knowledge-baseThe bug / feature is about knowledge base

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions