Showing preview only (8,991K chars total). Download the full file or copy to clipboard to get everything.
Repository: Tencent/WeKnora
Branch: main
Commit: e11bd8c57dc3
Files: 789
Total size: 8.4 MB
Directory structure:
gitextract_4npghok9/
├── .env.example
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── Makefile
├── README.md
├── README_CN.md
├── README_JA.md
├── README_KO.md
├── SECURITY.md
├── VERSION
├── client/
│ ├── README.md
│ ├── README_EN.md
│ ├── agent.go
│ ├── agent_manage.go
│ ├── chunk.go
│ ├── client.go
│ ├── evaluation.go
│ ├── example.go
│ ├── faq.go
│ ├── go.mod
│ ├── go.sum
│ ├── initialization.go
│ ├── knowledge.go
│ ├── knowledgebase.go
│ ├── mcp_service.go
│ ├── message.go
│ ├── model.go
│ ├── organization.go
│ ├── session.go
│ ├── skill.go
│ ├── system.go
│ ├── tag.go
│ ├── tenant.go
│ └── web_search.go
├── cmd/
│ └── download/
│ └── duckdb/
│ └── duckdb.go
├── config/
│ ├── builtin_agents.yaml
│ ├── config.yaml
│ └── prompt_templates/
│ ├── agent_system_prompt.yaml
│ ├── context_template.yaml
│ ├── fallback.yaml
│ ├── generate_questions.yaml
│ ├── generate_session_title.yaml
│ ├── generate_summary.yaml
│ ├── graph_extraction.yaml
│ ├── keywords_extraction.yaml
│ ├── rewrite.yaml
│ └── system_prompt.yaml
├── dataset/
│ ├── README
│ ├── README_zh.md
│ ├── qa_dataset.py
│ └── samples/
│ ├── answers.parquet
│ ├── corpus.parquet
│ ├── qas.parquet
│ ├── qrels.parquet
│ └── queries.parquet
├── docker/
│ ├── Dockerfile.app
│ ├── Dockerfile.docreader
│ ├── Dockerfile.sandbox
│ └── config/
│ └── supervisord.conf
├── docker-compose.dev.yml
├── docker-compose.yml
├── docreader/
│ ├── Makefile
│ ├── README.md
│ ├── client/
│ │ ├── client.go
│ │ └── client_test.go
│ ├── config.py
│ ├── main.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── document.py
│ │ └── read_config.py
│ ├── ocr/
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── paddle.py
│ │ └── vlm.py
│ ├── parser/
│ │ ├── __init__.py
│ │ ├── base_parser.py
│ │ ├── chain_parser.py
│ │ ├── doc_parser.py
│ │ ├── docx2_parser.py
│ │ ├── docx_parser.py
│ │ ├── excel_parser.py
│ │ ├── image_parser.py
│ │ ├── markdown_parser.py
│ │ ├── markitdown_parser.py
│ │ ├── parser.py
│ │ ├── pdf_parser.py
│ │ ├── registry.py
│ │ ├── storage.py
│ │ └── web_parser.py
│ ├── proto/
│ │ ├── docreader.pb.go
│ │ ├── docreader.proto
│ │ ├── docreader_grpc.pb.go
│ │ ├── docreader_pb2.py
│ │ ├── docreader_pb2.pyi
│ │ └── docreader_pb2_grpc.py
│ ├── pyproject.toml
│ ├── scripts/
│ │ ├── download_deps.py
│ │ └── generate_proto.sh
│ ├── splitter/
│ │ ├── header_hook.py
│ │ └── splitter.py
│ ├── testdata/
│ │ ├── test.html
│ │ ├── test.md
│ │ ├── test.txt
│ │ └── test_download.txt
│ └── utils/
│ ├── __init__.py
│ ├── endecode.py
│ ├── request.py
│ ├── split.py
│ └── tempfile.py
├── docs/
│ ├── BUILTIN_MCP_SERVICES.md
│ ├── BUILTIN_MODELS.md
│ ├── IM集成开发文档.md
│ ├── KnowledgeGraph.md
│ ├── MCP功能使用说明.md
│ ├── QA.md
│ ├── ROADMAP.md
│ ├── WeKnora.md
│ ├── agent-skills.md
│ ├── api/
│ │ ├── README.md
│ │ ├── agent.md
│ │ ├── chat.md
│ │ ├── chunk.md
│ │ ├── evaluation.md
│ │ ├── faq.md
│ │ ├── initialization.md
│ │ ├── knowledge-base.md
│ │ ├── knowledge-search.md
│ │ ├── knowledge.md
│ │ ├── mcp-service.md
│ │ ├── message.md
│ │ ├── model.md
│ │ ├── organization.md
│ │ ├── session.md
│ │ ├── skill.md
│ │ ├── system.md
│ │ ├── tag.md
│ │ ├── tenant.md
│ │ └── web-search.md
│ ├── docs.go
│ ├── swagger.json
│ ├── swagger.yaml
│ ├── 使用其他向量数据库.md
│ ├── 共享空间说明.md
│ ├── 开发指南.md
│ ├── 开启知识图谱功能.md
│ └── 快速开发模式说明.md
├── examples/
│ └── skills/
│ ├── README.md
│ └── pdf-processing/
│ ├── FORMS.md
│ ├── SKILL.md
│ └── scripts/
│ ├── analyze_form.py
│ └── extract_text.py
├── frontend/
│ ├── .gitignore
│ ├── Dockerfile
│ ├── docker-entrypoint.sh
│ ├── env.d.ts
│ ├── index.html
│ ├── nginx.conf
│ ├── package.json
│ ├── packages/
│ │ └── xlsx-0.20.2.tgz
│ ├── public/
│ │ └── config.js
│ ├── src/
│ │ ├── App.vue
│ │ ├── api/
│ │ │ ├── agent/
│ │ │ │ └── index.ts
│ │ │ ├── auth/
│ │ │ │ └── index.ts
│ │ │ ├── chat/
│ │ │ │ ├── index.ts
│ │ │ │ └── streame.ts
│ │ │ ├── chat-history.ts
│ │ │ ├── initialization/
│ │ │ │ └── index.ts
│ │ │ ├── knowledge-base/
│ │ │ │ └── index.ts
│ │ │ ├── mcp-service.ts
│ │ │ ├── model/
│ │ │ │ └── index.ts
│ │ │ ├── organization/
│ │ │ │ └── index.ts
│ │ │ ├── retrieval.ts
│ │ │ ├── skill/
│ │ │ │ └── index.ts
│ │ │ ├── system/
│ │ │ │ └── index.ts
│ │ │ ├── tenant/
│ │ │ │ └── index.ts
│ │ │ └── web-search.ts
│ │ ├── assets/
│ │ │ ├── dropdown-menu.less
│ │ │ ├── fonts.css
│ │ │ └── theme/
│ │ │ └── theme.css
│ │ ├── components/
│ │ │ ├── AgentAvatar.vue
│ │ │ ├── AgentSelector.vue
│ │ │ ├── AgentShareSettings.vue
│ │ │ ├── FAQTagTooltip.vue
│ │ │ ├── IMChannelPanel.vue
│ │ │ ├── Input-field.vue
│ │ │ ├── KnowledgeBaseSelector.vue
│ │ │ ├── ListSpaceSidebar.vue
│ │ │ ├── MentionSelector.vue
│ │ │ ├── ModelEditorDialog.vue
│ │ │ ├── ModelSelector.vue
│ │ │ ├── PromptTemplateSelector.vue
│ │ │ ├── ShareKnowledgeBaseDialog.vue
│ │ │ ├── SpaceAvatar.vue
│ │ │ ├── TenantSelector.vue
│ │ │ ├── UserMenu.vue
│ │ │ ├── css/
│ │ │ │ ├── chat-message-shared.less
│ │ │ │ └── markdown.less
│ │ │ ├── doc-content.vue
│ │ │ ├── document-preview.vue
│ │ │ ├── empty-knowledge.vue
│ │ │ ├── manual-knowledge-editor.vue
│ │ │ ├── menu.vue
│ │ │ ├── picture-preview.vue
│ │ │ └── upload-mask.vue
│ │ ├── composables/
│ │ │ └── useTheme.ts
│ │ ├── hooks/
│ │ │ ├── useKnowledgeBase.ts
│ │ │ └── useKnowledgeBaseCreationNavigation.ts
│ │ ├── i18n/
│ │ │ ├── index.ts
│ │ │ └── locales/
│ │ │ ├── en-US.ts
│ │ │ ├── ko-KR.ts
│ │ │ ├── ru-RU.ts
│ │ │ └── zh-CN.ts
│ │ ├── main.ts
│ │ ├── router/
│ │ │ └── index.ts
│ │ ├── stores/
│ │ │ ├── auth.ts
│ │ │ ├── knowledge.ts
│ │ │ ├── menu.ts
│ │ │ ├── organization.ts
│ │ │ ├── settings.ts
│ │ │ └── ui.ts
│ │ ├── types/
│ │ │ └── tool-results.ts
│ │ ├── utils/
│ │ │ ├── caret.ts
│ │ │ ├── chatMessageShared.ts
│ │ │ ├── index.ts
│ │ │ ├── mermaidShared.ts
│ │ │ ├── mermaidViewer.ts
│ │ │ ├── request.ts
│ │ │ ├── security.ts
│ │ │ └── tool-icons.ts
│ │ └── views/
│ │ ├── agent/
│ │ │ ├── AgentEditorModal.vue
│ │ │ └── AgentList.vue
│ │ ├── auth/
│ │ │ └── Login.vue
│ │ ├── chat/
│ │ │ ├── components/
│ │ │ │ ├── AgentStreamDisplay.vue
│ │ │ │ ├── ToolResultRenderer.vue
│ │ │ │ ├── botmsg.vue
│ │ │ │ ├── deepThink.vue
│ │ │ │ ├── docInfo.vue
│ │ │ │ ├── sendMsg.vue
│ │ │ │ ├── tool-results/
│ │ │ │ │ ├── ChunkDetail.vue
│ │ │ │ │ ├── ContentPopup.vue
│ │ │ │ │ ├── DatabaseQuery.vue
│ │ │ │ │ ├── DocumentInfo.vue
│ │ │ │ │ ├── GraphQueryResults.vue
│ │ │ │ │ ├── GrepResults.vue
│ │ │ │ │ ├── KnowledgeBaseList.vue
│ │ │ │ │ ├── PlanDisplay.vue
│ │ │ │ │ ├── RelatedChunks.vue
│ │ │ │ │ ├── SearchResults.vue
│ │ │ │ │ ├── ThinkingDisplay.vue
│ │ │ │ │ ├── WebFetchResults.vue
│ │ │ │ │ ├── WebSearchResults.vue
│ │ │ │ │ └── tool-results.less
│ │ │ │ └── usermsg.vue
│ │ │ └── index.vue
│ │ ├── creatChat/
│ │ │ └── creatChat.vue
│ │ ├── knowledge/
│ │ │ ├── KnowledgeBase.vue
│ │ │ ├── KnowledgeBaseEditorModal.vue
│ │ │ ├── KnowledgeBaseList.vue
│ │ │ ├── KnowledgeSearch.vue
│ │ │ ├── components/
│ │ │ │ └── FAQEntryManager.vue
│ │ │ └── settings/
│ │ │ ├── GraphSettings.vue
│ │ │ ├── KBAdvancedSettings.vue
│ │ │ ├── KBChunkingSettings.vue
│ │ │ ├── KBModelConfig.vue
│ │ │ ├── KBParserSettings.vue
│ │ │ ├── KBShareSettings.vue
│ │ │ └── KBStorageSettings.vue
│ │ ├── organization/
│ │ │ ├── JoinOrganization.vue
│ │ │ ├── OrganizationEditorModal.vue
│ │ │ ├── OrganizationList.vue
│ │ │ └── OrganizationSettingsModal.vue
│ │ ├── platform/
│ │ │ └── index.vue
│ │ └── settings/
│ │ ├── AgentSettings.vue
│ │ ├── ApiInfo.vue
│ │ ├── ChatHistorySettings.vue
│ │ ├── GeneralSettings.vue
│ │ ├── McpSettings.vue
│ │ ├── ModelSettings.vue
│ │ ├── OllamaSettings.vue
│ │ ├── ParserEngineSettings.vue
│ │ ├── RetrievalSettings.vue
│ │ ├── Settings.vue
│ │ ├── StorageEngineSettings.vue
│ │ ├── SystemInfo.vue
│ │ ├── TenantInfo.vue
│ │ ├── WebSearchSettings.vue
│ │ └── components/
│ │ ├── McpServiceDialog.vue
│ │ └── McpTestResult.vue
│ ├── tsconfig.app.json
│ ├── tsconfig.json
│ ├── tsconfig.node.json
│ └── vite.config.ts
├── go.mod
├── go.sum
├── helm/
│ ├── Chart.yaml
│ ├── README.md
│ ├── templates/
│ │ ├── NOTES.txt
│ │ ├── _helpers.tpl
│ │ ├── app.yaml
│ │ ├── docreader.yaml
│ │ ├── frontend.yaml
│ │ ├── ingress.yaml
│ │ ├── neo4j.yaml
│ │ ├── postgres.yaml
│ │ ├── pvc.yaml
│ │ ├── redis.yaml
│ │ ├── secrets.yaml
│ │ └── serviceaccount.yaml
│ └── values.yaml
├── internal/
│ ├── agent/
│ │ ├── const.go
│ │ ├── engine.go
│ │ ├── prompts.go
│ │ ├── skills/
│ │ │ ├── integration_test.go
│ │ │ ├── loader.go
│ │ │ ├── manager.go
│ │ │ ├── skill.go
│ │ │ └── skills_test.go
│ │ └── tools/
│ │ ├── data_analysis.go
│ │ ├── data_schema.go
│ │ ├── database_query.go
│ │ ├── definitions.go
│ │ ├── final_answer.go
│ │ ├── get_document_info.go
│ │ ├── grep_chunks.go
│ │ ├── knowledge_search.go
│ │ ├── list_knowledge_chunks.go
│ │ ├── mcp_tool.go
│ │ ├── query_knowledge_graph.go
│ │ ├── registry.go
│ │ ├── sequentialthinking.go
│ │ ├── skill_execute.go
│ │ ├── skill_read.go
│ │ ├── todo_write.go
│ │ ├── tool.go
│ │ ├── web_fetch.go
│ │ └── web_search.go
│ ├── application/
│ │ ├── repository/
│ │ │ ├── agent_share.go
│ │ │ ├── chunk.go
│ │ │ ├── custom_agent.go
│ │ │ ├── kbshare.go
│ │ │ ├── knowledge.go
│ │ │ ├── knowledgebase.go
│ │ │ ├── mcp_service.go
│ │ │ ├── memory/
│ │ │ │ └── neo4j/
│ │ │ │ └── repository.go
│ │ │ ├── message.go
│ │ │ ├── model.go
│ │ │ ├── organization.go
│ │ │ ├── retriever/
│ │ │ │ ├── elasticsearch/
│ │ │ │ │ ├── structs.go
│ │ │ │ │ ├── v7/
│ │ │ │ │ │ └── repository.go
│ │ │ │ │ └── v8/
│ │ │ │ │ └── repository.go
│ │ │ │ ├── milvus/
│ │ │ │ │ ├── filter.go
│ │ │ │ │ ├── repository.go
│ │ │ │ │ └── structs.go
│ │ │ │ ├── neo4j/
│ │ │ │ │ └── repository.go
│ │ │ │ ├── postgres/
│ │ │ │ │ ├── repository.go
│ │ │ │ │ └── structs.go
│ │ │ │ ├── qdrant/
│ │ │ │ │ ├── repository.go
│ │ │ │ │ └── structs.go
│ │ │ │ ├── sqlite/
│ │ │ │ │ └── repository.go
│ │ │ │ └── weaviate/
│ │ │ │ ├── repository.go
│ │ │ │ └── structs.go
│ │ │ ├── session.go
│ │ │ ├── tag.go
│ │ │ ├── tenant.go
│ │ │ ├── tenant_disabled_shared_agent.go
│ │ │ └── user.go
│ │ └── service/
│ │ ├── agent_service.go
│ │ ├── agent_share.go
│ │ ├── chat_pipline/
│ │ │ ├── chat_completion.go
│ │ │ ├── chat_completion_stream.go
│ │ │ ├── chat_pipline.go
│ │ │ ├── chat_pipline_test.go
│ │ │ ├── common.go
│ │ │ ├── data_analysis.go
│ │ │ ├── extract_entity.go
│ │ │ ├── filter_top_k.go
│ │ │ ├── into_chat_message.go
│ │ │ ├── load_history.go
│ │ │ ├── memory.go
│ │ │ ├── merge.go
│ │ │ ├── merge_expand.go
│ │ │ ├── merge_faq.go
│ │ │ ├── merge_history.go
│ │ │ ├── merge_overlap.go
│ │ │ ├── query_expansion.go
│ │ │ ├── rerank.go
│ │ │ ├── rerank_clean_test.go
│ │ │ ├── rewrite.go
│ │ │ ├── search.go
│ │ │ ├── search_entity.go
│ │ │ ├── search_parallel.go
│ │ │ ├── stream_filter.go
│ │ │ └── tracing.go
│ │ ├── chunk.go
│ │ ├── custom_agent.go
│ │ ├── dataset.go
│ │ ├── evaluation.go
│ │ ├── extract.go
│ │ ├── file/
│ │ │ ├── cos.go
│ │ │ ├── dummy.go
│ │ │ ├── factory.go
│ │ │ ├── local.go
│ │ │ ├── minio.go
│ │ │ ├── s3.go
│ │ │ └── tos.go
│ │ ├── graph.go
│ │ ├── image_multimodal.go
│ │ ├── kbshare.go
│ │ ├── knowledge.go
│ │ ├── knowledge_manual_test.go
│ │ ├── knowledgebase.go
│ │ ├── knowledgebase_search.go
│ │ ├── knowledgebase_search_faq.go
│ │ ├── knowledgebase_search_fusion.go
│ │ ├── knowledgebase_search_results.go
│ │ ├── knowledgebase_search_shared.go
│ │ ├── llmcontext/
│ │ │ ├── compression_strategies.go
│ │ │ ├── context_manager.go
│ │ │ ├── context_manager_factory.go
│ │ │ ├── memory_storage.go
│ │ │ ├── redis_storage.go
│ │ │ └── storage.go
│ │ ├── mcp_service.go
│ │ ├── memory/
│ │ │ └── service.go
│ │ ├── message.go
│ │ ├── metric/
│ │ │ ├── bleu.go
│ │ │ ├── common.go
│ │ │ ├── map.go
│ │ │ ├── map_test.go
│ │ │ ├── mrr.go
│ │ │ ├── mrr_test.go
│ │ │ ├── ndcg.go
│ │ │ ├── precision.go
│ │ │ ├── precision_test.go
│ │ │ ├── recall.go
│ │ │ ├── recall_test.go
│ │ │ ├── rouge.go
│ │ │ └── rouge_score.go
│ │ ├── metric_hook.go
│ │ ├── model.go
│ │ ├── ocr_sanitizer.go
│ │ ├── ocr_sanitizer_test.go
│ │ ├── organization.go
│ │ ├── retriever/
│ │ │ ├── composite.go
│ │ │ ├── keywords_vector_hybrid_indexer.go
│ │ │ └── registry.go
│ │ ├── session.go
│ │ ├── session_agent_qa.go
│ │ ├── session_knowledge_qa.go
│ │ ├── session_qa_helpers.go
│ │ ├── skill_service.go
│ │ ├── tag.go
│ │ ├── tenant.go
│ │ ├── user.go
│ │ ├── web_search/
│ │ │ ├── bing.go
│ │ │ ├── bing_test.go
│ │ │ ├── duckduckgo.go
│ │ │ ├── duckduckgo_test.go
│ │ │ ├── google.go
│ │ │ ├── google_test.go
│ │ │ └── registry.go
│ │ ├── web_search.go
│ │ └── web_search_state.go
│ ├── common/
│ │ └── tools.go
│ ├── config/
│ │ └── config.go
│ ├── container/
│ │ ├── cleanup.go
│ │ └── container.go
│ ├── database/
│ │ └── migration.go
│ ├── errors/
│ │ ├── errors.go
│ │ └── session.go
│ ├── event/
│ │ ├── SUMMARY.md
│ │ ├── adapter.go
│ │ ├── event.go
│ │ ├── event_data.go
│ │ ├── example_test.go
│ │ ├── global.go
│ │ ├── middleware.go
│ │ └── usage_example.md
│ ├── handler/
│ │ ├── auth.go
│ │ ├── chunk.go
│ │ ├── custom_agent.go
│ │ ├── evaluation.go
│ │ ├── faq.go
│ │ ├── im.go
│ │ ├── initialization.go
│ │ ├── knowledge.go
│ │ ├── knowledgebase.go
│ │ ├── mcp_service.go
│ │ ├── message.go
│ │ ├── model.go
│ │ ├── organization.go
│ │ ├── session/
│ │ │ ├── agent_stream_handler.go
│ │ │ ├── handler.go
│ │ │ ├── helpers.go
│ │ │ ├── image_upload.go
│ │ │ ├── qa.go
│ │ │ ├── stream.go
│ │ │ ├── title.go
│ │ │ └── types.go
│ │ ├── skill_handler.go
│ │ ├── system.go
│ │ ├── tag.go
│ │ ├── tenant.go
│ │ └── web_search.go
│ ├── im/
│ │ ├── adapter.go
│ │ ├── cmd_clear.go
│ │ ├── cmd_help.go
│ │ ├── cmd_info.go
│ │ ├── cmd_search.go
│ │ ├── cmd_stop.go
│ │ ├── command.go
│ │ ├── command_registry.go
│ │ ├── feishu/
│ │ │ ├── adapter.go
│ │ │ └── longconn.go
│ │ ├── qaqueue.go
│ │ ├── ratelimit.go
│ │ ├── service.go
│ │ ├── slack/
│ │ │ ├── adapter.go
│ │ │ └── longconn.go
│ │ ├── stream_test.go
│ │ ├── types.go
│ │ └── wecom/
│ │ ├── longconn.go
│ │ ├── webhook_adapter.go
│ │ └── ws_adapter.go
│ ├── infrastructure/
│ │ ├── chunker/
│ │ │ ├── splitter.go
│ │ │ └── splitter_test.go
│ │ └── docparser/
│ │ ├── builtin_converter.go
│ │ ├── engine_registry.go
│ │ ├── grpc_parser.go
│ │ ├── helpers.go
│ │ ├── http_parser.go
│ │ ├── image_resolver.go
│ │ ├── image_resolver_test.go
│ │ ├── mineru_cloud_converter.go
│ │ ├── mineru_converter.go
│ │ └── resolve_remote_images_test.go
│ ├── logger/
│ │ └── logger.go
│ ├── mcp/
│ │ ├── client.go
│ │ ├── errors.go
│ │ ├── manager.go
│ │ └── types.go
│ ├── middleware/
│ │ ├── auth.go
│ │ ├── error_handler.go
│ │ ├── language.go
│ │ ├── logger.go
│ │ ├── recovery.go
│ │ └── trace.go
│ ├── models/
│ │ ├── chat/
│ │ │ ├── chat.go
│ │ │ ├── image_resolve.go
│ │ │ ├── json_field_extractor.go
│ │ │ ├── json_field_extractor_test.go
│ │ │ ├── lkeap.go
│ │ │ ├── nvidia.go
│ │ │ ├── ollama.go
│ │ │ ├── provider_chat.go
│ │ │ ├── qwen.go
│ │ │ ├── remote_api.go
│ │ │ ├── remote_api_test.go
│ │ │ └── sse_reader.go
│ │ ├── embedding/
│ │ │ ├── aliyun.go
│ │ │ ├── batch.go
│ │ │ ├── embedder.go
│ │ │ ├── jina.go
│ │ │ ├── nvidia.go
│ │ │ ├── ollama.go
│ │ │ ├── openai.go
│ │ │ └── volcengine.go
│ │ ├── provider/
│ │ │ ├── aliyun.go
│ │ │ ├── deepseek.go
│ │ │ ├── gemini.go
│ │ │ ├── generic.go
│ │ │ ├── gpustack.go
│ │ │ ├── hunyuan.go
│ │ │ ├── jina.go
│ │ │ ├── lkeap.go
│ │ │ ├── longcat.go
│ │ │ ├── mimo.go
│ │ │ ├── minimax.go
│ │ │ ├── modelscope.go
│ │ │ ├── moonshot.go
│ │ │ ├── nvidia.go
│ │ │ ├── openai.go
│ │ │ ├── openrouter.go
│ │ │ ├── provider.go
│ │ │ ├── provider_test.go
│ │ │ ├── qianfan.go
│ │ │ ├── qiniu.go
│ │ │ ├── siliconflow.go
│ │ │ ├── volcengine.go
│ │ │ └── zhipu.go
│ │ ├── rerank/
│ │ │ ├── aliyun_reranker.go
│ │ │ ├── jina_reranker.go
│ │ │ ├── logging.go
│ │ │ ├── nvidia_reranker.go
│ │ │ ├── remote_api.go
│ │ │ ├── reranker.go
│ │ │ ├── reranker_test.go
│ │ │ └── zhipu_reranker.go
│ │ ├── utils/
│ │ │ ├── ollama/
│ │ │ │ └── ollama.go
│ │ │ └── slices.go
│ │ └── vlm/
│ │ ├── ollama.go
│ │ ├── remote_api.go
│ │ └── vlm.go
│ ├── router/
│ │ ├── router.go
│ │ ├── sync_task.go
│ │ └── task.go
│ ├── runtime/
│ │ └── container.go
│ ├── sandbox/
│ │ ├── docker.go
│ │ ├── local.go
│ │ ├── manager.go
│ │ ├── sandbox.go
│ │ ├── sandbox_test.go
│ │ ├── validator.go
│ │ └── validator_test.go
│ ├── searchutil/
│ │ ├── conversion.go
│ │ ├── normalize.go
│ │ └── textutil.go
│ ├── stream/
│ │ ├── factory.go
│ │ ├── memory_manager.go
│ │ └── redis_manager.go
│ ├── tracing/
│ │ └── init.go
│ ├── types/
│ │ ├── agent.go
│ │ ├── builtin_agent_config.go
│ │ ├── chat.go
│ │ ├── chat_history_config.go
│ │ ├── chat_manage.go
│ │ ├── chunk.go
│ │ ├── cleanup.go
│ │ ├── const.go
│ │ ├── context_helpers.go
│ │ ├── custom_agent.go
│ │ ├── dataset.go
│ │ ├── docparser.go
│ │ ├── embedding.go
│ │ ├── errors.go
│ │ ├── evaluation.go
│ │ ├── event_bus.go
│ │ ├── extract_graph.go
│ │ ├── faq.go
│ │ ├── faq_test.go
│ │ ├── graph.go
│ │ ├── interfaces/
│ │ │ ├── agent.go
│ │ │ ├── chunk.go
│ │ │ ├── context_manager.go
│ │ │ ├── custom_agent.go
│ │ │ ├── document_parser.go
│ │ │ ├── evaluation.go
│ │ │ ├── file.go
│ │ │ ├── knowledge.go
│ │ │ ├── knowledgebase.go
│ │ │ ├── mcp_service.go
│ │ │ ├── memory.go
│ │ │ ├── message.go
│ │ │ ├── model.go
│ │ │ ├── organization.go
│ │ │ ├── resource.go
│ │ │ ├── retriever.go
│ │ │ ├── retriever_graph.go
│ │ │ ├── session.go
│ │ │ ├── skill.go
│ │ │ ├── stream_manager.go
│ │ │ ├── tag.go
│ │ │ ├── task_enqueuer.go
│ │ │ ├── task_handler.go
│ │ │ ├── tenant.go
│ │ │ ├── user.go
│ │ │ ├── web_search.go
│ │ │ └── web_search_state.go
│ │ ├── json.go
│ │ ├── knowledge.go
│ │ ├── knowledgebase.go
│ │ ├── mcp.go
│ │ ├── memory.go
│ │ ├── message.go
│ │ ├── model.go
│ │ ├── organization.go
│ │ ├── placeholder.go
│ │ ├── qa_request.go
│ │ ├── retrieval_config.go
│ │ ├── retriever.go
│ │ ├── search.go
│ │ ├── session.go
│ │ ├── tag.go
│ │ ├── tenant.go
│ │ ├── user.go
│ │ └── web_search.go
│ └── utils/
│ ├── crypto.go
│ ├── debug.go
│ ├── filesize.go
│ ├── httputil.go
│ ├── inject.go
│ ├── inject_test.go
│ ├── json.go
│ ├── log_sanitize.go
│ ├── security.go
│ ├── security_test.go
│ └── taskid.go
├── mcp-server/
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── EXAMPLES.md
│ ├── INSTALL.md
│ ├── LICENSE
│ ├── MANIFEST.in
│ ├── MCP_CONFIG.md
│ ├── PROJECT_SUMMARY.md
│ ├── README.md
│ ├── __init__.py
│ ├── main.py
│ ├── pyproject.toml
│ ├── requirements.txt
│ ├── run.py
│ ├── run_server.py
│ ├── setup.py
│ ├── test_imports.py
│ ├── test_module.py
│ └── weknora_mcp_server.py
├── migrations/
│ ├── mysql/
│ │ └── 00-init-db.sql
│ ├── paradedb/
│ │ ├── 00-init-db.sql
│ │ └── 01-migrate-to-paradedb.sql
│ ├── sqlite/
│ │ ├── 000000_init.down.sql
│ │ └── 000000_init.up.sql
│ └── versioned/
│ ├── 000000_init.down.sql
│ ├── 000000_init.up.sql
│ ├── 000001_agent.down.sql
│ ├── 000001_agent.up.sql
│ ├── 000002_embeddings.down.sql
│ ├── 000002_embeddings.up.sql
│ ├── 000003_chunk_flags.down.sql
│ ├── 000003_chunk_flags.up.sql
│ ├── 000004_drop_vlm_model_id.down.sql
│ ├── 000004_drop_vlm_model_id.up.sql
│ ├── 000005_mentioned_items.down.sql
│ ├── 000005_mentioned_items.up.sql
│ ├── 000006_custom_agents.down.sql
│ ├── 000006_custom_agents.up.sql
│ ├── 000007_embeddings_tag_id.down.sql
│ ├── 000007_embeddings_tag_id.up.sql
│ ├── 000008_migrate_untagged_faq.down.sql
│ ├── 000008_migrate_untagged_faq.up.sql
│ ├── 000009_add_last_faq_import_result.down.sql
│ ├── 000009_add_last_faq_import_result.up.sql
│ ├── 000010_add_seq_id.down.sql
│ ├── 000010_add_seq_id.up.sql
│ ├── 000011_pg_search_update.down.sql
│ ├── 000011_pg_search_update.up.sql
│ ├── 000012_organizations.down.sql
│ ├── 000012_organizations.up.sql
│ ├── 000013_engine_configs.down.sql
│ ├── 000013_engine_configs.up.sql
│ ├── 000014_storage_provider_config.down.sql
│ ├── 000014_storage_provider_config.up.sql
│ ├── 000015_add_is_fallback.down.sql
│ ├── 000015_add_is_fallback.up.sql
│ ├── 000016_add_kb_pinned.down.sql
│ ├── 000016_add_kb_pinned.up.sql
│ ├── 000017_mcp_builtin.down.sql
│ ├── 000017_mcp_builtin.up.sql
│ ├── 000018_extend_tenant_api_key.down.sql
│ ├── 000018_extend_tenant_api_key.up.sql
│ ├── 000019_add_agent_duration_ms.down.sql
│ ├── 000019_add_agent_duration_ms.up.sql
│ ├── 000020_add_message_knowledge_id.down.sql
│ ├── 000020_add_message_knowledge_id.up.sql
│ ├── 000021_im_channel.down.sql
│ ├── 000021_im_channel.up.sql
│ ├── 000022_message_images.down.sql
│ ├── 000022_message_images.up.sql
│ ├── 000023_im_channel_kb_id.down.sql
│ ├── 000023_im_channel_kb_id.up.sql
│ ├── 000024_im_channel_bot_identity.down.sql
│ └── 000024_im_channel_bot_identity.up.sql
├── rerank_server_demo.py
├── scripts/
│ ├── build_images.sh
│ ├── check-env.sh
│ ├── dev.sh
│ ├── docker-entrypoint.sh
│ ├── get_version.sh
│ ├── migrate.sh
│ ├── quick-dev.sh
│ └── start_all.sh
├── skills/
│ └── preloaded/
│ ├── citation-generator/
│ │ └── SKILL.md
│ ├── data-processor/
│ │ ├── SKILL.md
│ │ └── scripts/
│ │ ├── analyze.py
│ │ ├── extract_info.py
│ │ └── format_converter.py
│ ├── doc-coauthoring/
│ │ └── SKILL.md
│ └── document-analyzer/
│ └── SKILL.md
└── test_agent_config.sh
================================================
FILE CONTENTS
================================================
================================================
FILE: .env.example
================================================
# 使用说明
# 1. 复制此文件为 .env
# 2. 替换所有占位符为实际值
# 3. 确保 .env 文件不会被提交到版本控制系统
# ========== 镜像版本 ==========
# WeKnora 镜像版本标签,可选值: latest(稳定版), main(最新开发版)
# WEKNORA_VERSION=latest
# gin mod
# 可选值: debug(开发模式,有详细日志), release(生产模式,禁用Swagger文档)
GIN_MODE=release
# 日志级别,可选值:debug, info, warn, error, fatal,默认为debug
# LOG_LEVEL=debug
# 时区设置,默认为 Asia/Shanghai
# 影响系统时间显示和日志时间戳
# 常用值:Asia/Shanghai, Asia/Tokyo, America/New_York, Europe/London, UTC
TZ=Asia/Shanghai
# 系统默认语言(BCP-47 格式),用于 Prompt 中 {{language}} 占位符的回退值
# 优先级:Accept-Language 请求头 > 此环境变量 > 内置默认值 (en-US)
# 常用值:zh-CN, en-US, ja-JP, ko-KR, ru-RU
# WEKNORA_LANGUAGE=zh-CN
# 禁止新用户注册(生产环境建议设为 true)
DISABLE_REGISTRATION=false
# Ollama 服务的基准 URL,用于连接本地/其他服务器上运行的 Ollama 服务
OLLAMA_BASE_URL=http://host.docker.internal:11434
# 存储配置
# 主数据库类型(postgres/mysql)
DB_DRIVER=postgres
# 向量存储类型(postgres/elasticsearch_v7/elasticsearch_v8/qdrant/milvus/weaviate)
RETRIEVE_DRIVER=postgres
# 文件存储类型(local/minio/cos/tos/s3)
STORAGE_TYPE=local
# 流处理后端(memory/redis)
STREAM_MANAGER_TYPE=redis
# 应用服务主机名,默认为app(Docker内部服务名)
# 如需代理到远程后端,可设为远程地址,如 remote-app.example.com
APP_HOST=app
# 应用服务宿主机映射端口,默认为8080(仅影响宿主机访问,不影响容器间通信)
APP_PORT=8080
# NGINX 代理到后端的目标端口,默认为8080(App容器内部监听端口)
# 本地部署:保持默认即可,无需随 APP_PORT 修改
# 远程部署:设为远程 App 服务的实际端口
# APP_BACKEND_PORT=8080
# NGINX 代理到后端的协议,默认为http
# 远程部署如后端为 HTTPS,需设为 https
# APP_SCHEME=http
# 前端服务端口,默认为80
FRONTEND_PORT=80
# 文档解析模块端口,默认为50051
DOCREADER_PORT=50051
# 数据库主机地址
DB_HOST=localhost
# 数据库端口
DB_PORT=5432
# 数据库用户名
DB_USER=postgres
# 数据库密码
DB_PASSWORD=postgres123!@#
# 数据库名称
DB_NAME=WeKnora
# 如果使用 redis 作为流处理后端,需要配置以下参数
# Redis用户名,Redis 6.0+ ACL 功能支持(可选)
# REDIS_USERNAME=
# Redis密码,如果没有设置密码,可以留空
REDIS_PASSWORD=redis123!@#
# Redis数据库索引,默认为0
REDIS_DB=0
# Redis key的前缀,用于命名空间隔离
REDIS_PREFIX=stream:
# 当使用本地存储时,文件保存的基础目录路径
LOCAL_STORAGE_BASE_DIR=/data/files
# 是否自动恢复脏数据
AUTO_RECOVER_DIRTY=true
TENANT_AES_KEY=weknorarag-api-key-secret-secret
# AES-256 密钥,用于数据库中 API Key 等敏感字段的落盘加密(必须为32字节)
SYSTEM_AES_KEY=weknora-system-aes-key-32bytes!!
# 是否开启知识图谱构建和检索(构建阶段需调用大模型,耗时较长)
ENABLE_GRAPH_RAG=false
# 配置 JWT_SECRET 用于前端登录刷新Token
JWT_SECRET=weknora-jwt-secret
# MinIO端口
# MINIO_PORT=9000
# MinIO控制台端口
# MINIO_CONSOLE_PORT=9001
# Embedding并发数,出现429错误时,可调小此参数
CONCURRENCY_POOL_SIZE=5
# (Removed: IMAGE_MAX_CONCURRENT, OCR_BACKEND — moved to Go App module after lightweight refactoring)
# 如果使用ElasticSearch作为向量存储,需要配置以下参数
# ElasticSearch地址,例如 http://localhost:9200
# ELASTICSEARCH_ADDR=your_elasticsearch_addr
# ElasticSearch用户名,如果需要身份验证
# ELASTICSEARCH_USERNAME=your_elasticsearch_username
# ElasticSearch密码,如果需要身份验证
# ELASTICSEARCH_PASSWORD=your_elasticsearch_password
# ElasticSearch索引名称,用于存储向量数据
# ELASTICSEARCH_INDEX=WeKnora
# 如果使用Qdrant作为向量存储,需要配置以下参数
# Qdrant服务主机地址
# QDRANT_HOST=localhost
# Qdrant服务端口
# QDRANT_PORT=6334
# Qdrant集合名称,用于存储向量数据
# QDRANT_COLLECTION=weknora_embeddings
# Qdrant API密钥,如果需要身份验证(可选)
# QDRANT_API_KEY=your_qdrant_api_key
# 是否启用TLS加密连接(可选,默认为false)
# QDRANT_USE_TLS=false
# 如果使用MinIO作为文件存储,需要配置以下参数
# MinIO访问密钥
# MINIO_ACCESS_KEY_ID=your_minio_access_key
# MinIO密钥
# MINIO_SECRET_ACCESS_KEY=your_minio_secret_key
# MinIO桶名称,用于存储文件
# MINIO_BUCKET_NAME=your_minio_bucket_name
# 如果使用腾讯云COS作为文件存储,需要配置以下参数
# 腾讯云COS的访问密钥ID
# COS_SECRET_ID=your_cos_secret_id
# 腾讯云COS的密钥
# COS_SECRET_KEY=your_cos_secret_key
# 腾讯云COS的区域,例如 ap-guangzhou
# COS_REGION=your_cos_region
# 腾讯云COS的桶名称
# COS_BUCKET_NAME=your_cos_bucket_name
# 腾讯云COS的应用ID
# COS_APP_ID=your_cos_app_id
# 腾讯云COS的路径前缀,用于存储文件
# COS_PATH_PREFIX=your_cos_path_prefix
# COS_ENABLE_OLD_DOMAIN=true 表示启用旧的域名格式,默认为 true
COS_ENABLE_OLD_DOMAIN=true
# 如果使用火山引擎TOS作为文件存储,需要配置以下参数
# 火山引擎TOS的访问端点,例如 https://tos-cn-beijing.volces.com
# TOS_ENDPOINT=https://tos-cn-beijing.volces.com
# 火山引擎TOS的区域,例如 cn-beijing
# TOS_REGION=cn-beijing
# 火山引擎TOS访问密钥 Access Key
# TOS_ACCESS_KEY=your_tos_access_key
# 火山引擎TOS访问密钥 Secret Key
# TOS_SECRET_KEY=your_tos_secret_key
# 火山引擎TOS桶名称
# TOS_BUCKET_NAME=your_tos_bucket_name
# 火山引擎TOS可选路径前缀(可选)
# TOS_PATH_PREFIX=your_tos_path_prefix
# 火山引擎TOS临时桶名称(可选,用于存放自动过期临时文件)
# TOS_TEMP_BUCKET_NAME=your_tos_temp_bucket_name
# 火山引擎TOS临时桶区域(可选,默认与主桶相同)
# TOS_TEMP_REGION=your_tos_temp_region
# 如果使用AWS S3作为文件存储,需要配置以下参数
# AWS S3的访问端点,例如 https://s3.amazonaws.com
# S3_ENDPOINT=https://s3.amazonaws.com
# AWS S3的区域,例如 us-east-1
# S3_REGION=us-east-1
# AWS S3访问密钥 Access Key
# S3_ACCESS_KEY=your_s3_access_key
# AWS S3访问密钥 Secret Key
# S3_SECRET_KEY=your_s3_secret_key
# AWS S3桶名称
# S3_BUCKET_NAME=your_s3_bucket_name
# AWS S3可选路径前缀(可选)
# S3_PATH_PREFIX=your_s3_path_prefix
# 如果解析网络连接使用Web代理,需要配置以下参数
# WEB_PROXY=your_web_proxy
# Neo4j 开关
# NEO4J_ENABLE=false
# Neo4j的访问地址
# NEO4J_URI=neo4j://neo4j:7687
# Neo4j的用户名和密码
# NEO4J_USERNAME=neo4j
# Neo4j的密码
# NEO4J_PASSWORD=password
# ========== 文件上传大小限制 ==========
# 统一的文件大小限制(MB),默认为50MB
# 影响:单文件上传、gRPC消息大小、Nginx请求体大小
# MAX_FILE_SIZE_MB=50
# ========== Agent Skills Sandbox 配置 ==========
# Sandbox 模式: docker(默认), local, disabled
WEKNORA_SANDBOX_MODE=docker
# 脚本执行超时时间(秒),默认60
WEKNORA_SANDBOX_TIMEOUT=60
# 自定义 Sandbox Docker 镜像
WEKNORA_SANDBOX_DOCKER_IMAGE=wechatopenai/weknora-sandbox:latest
# APK 镜像源设置(可选)
APK_MIRROR_ARG=mirrors.tencent.com
# 如果使用Milvus作为向量存储,需要配置以下参数
# Milvus服务地址
# MILVUS_ADDRESS=milvus:19530
# Milvus集合名称,用于存储向量数据
# MILVUS_COLLECTION=weknora_embeddings
# Milvus 用户名(可选)
# MILVUS_USERNAME=your_milvus_username
# Milvus 密码(可选)
# MILVUS_PASSWORD=your_milvus_password
# Milvus 数据库名称(可选)
# MILVUS_DB_NAME=your_milvus_db_name
# Docreader 地址
DOCREADER_ADDR=docreader:50051
# Docreader 连接方式
DOCREADER_TRANSPORT=grpc
# 如果使用Weaviate作为向量存储,需要配置以下参数
# 注意:容器内访问请使用 service:port(不要用 localhost,也不要用宿主机映射端口)
# Weaviate HTTP 地址(Docker 内:weaviate:8080;宿主机访问:localhost:9035)
# WEAVIATE_HOST=weaviate:8080
# Weaviate gRPC 地址(Docker 内:weaviate:50051;宿主机访问:localhost:50052)
# WEAVIATE_GRPC_ADDRESS=weaviate:50051
# Weaviate 架构模式
# WEAVIATE_SCHEME=http
# 是否开启认证(如果你在 weaviate 里启用了 APIKey/OIDC 认证,再把这里设为 true 并配置 WEAVIATE_API_KEY)
# WEAVIATE_AUTH_ENABLED=false
# API Key(可选)
# WEAVIATE_API_KEY=your_secret_key
# Weaviate 数据库名称(可选)
#WEAVIATE_COLLECTION=your_weaviate_db_name
================================================
FILE: .gitignore
================================================
# 忽略所有隐藏文件和目录
.*
# 但不忽略示例文件
!.env.example
!.gitignore
# 敏感文件
*.pem
*_key
*_secret
*.key
*.crt
# IDE和编辑器文件
*.swp
*.swo
# 构建和依赖文件
node_modules/
/dist/
/build/
*.log
# 临时文件
tmp/
temp/
logs/
*.pid
WeKnora
WeKnora-lite
/models/
test/data/mswag.txt
data/files/
data/weknora.db
data/weknora.db-wal
data/weknora.db-shm
web/
**/__pycache__
/scripts/scale_dev_jobs.sh
server
frontend/.vite
frontend/chrome-extension/
WeKnora-Chrome-Extension
================================================
FILE: CHANGELOG.md
================================================
# Changelog
All notable changes to this project will be documented in this file.
## [0.3.4] - 2026-03-19
### 🚀 New Features
- **NEW**: IM Bot Integration — support WeCom, Feishu, and Slack IM channel integration with WebSocket/Webhook modes, streaming support, file upload, and knowledge base integration
- **NEW**: Multimodal Image Support — implement image upload and multimodal image processing with enhanced session management
- **NEW**: Manual Knowledge Download — support downloading manual knowledge content as files with proper filename sanitization and Content-Disposition handling
- **NEW**: NVIDIA Model API — support NVIDIA chat model API with custom endpoint configuration and VLM model support
- **NEW**: Weaviate Vector DB — add Weaviate as a new vector database backend for knowledge retrieval
- **NEW**: AWS S3 Storage — integrate AWS S3 storage adapter with database migrations and configuration UI
- **NEW**: AES-256-GCM Encryption — add AES-256-GCM encryption for API keys at rest for enhanced security
- **NEW**: Built-in MCP Service — add built-in MCP service support for extending agent capabilities
- **NEW**: Multi-Content Messages — enhance message structure to support multi-content messages
- **NEW**: Web Search in AgentQA — add web search option to AgentQA functionality
- **NEW**: Clear Session Messages — add functionality to clear session messages
- **NEW**: Agent Management — add agent management functionality in the frontend
- **NEW**: Knowledge Move — implement knowledge move functionality between knowledge bases
- **NEW**: Chat History & Retrieval Settings — implement chat history and retrieval settings configuration
- **NEW**: Final Answer Tool — introduce final_answer tool and enhance agent duration tracking
- **NEW**: Batch Chunk Deletion — implement batch deletion for chunks to avoid MySQL placeholder limit
### ⚡ Improvements
- Optimized hybrid search by grouping targets and reusing query embeddings for better performance
- Enhanced knowledge search by resolving embedding model keys
- Enhanced AgentStreamDisplay with auto-scrolling, improved styling, and loading indicators
- Enhanced chat model selection logic in session management
- Enhanced input field component with improved handling and sanitization
- Unified dropdown menu styles across components
- Enhanced storage engine configuration and user notifications
- Improved document preview with responsive design and localized fullscreen toggle
- Enhanced agent event emission for final answers and fallback handling
- Enhanced FAQ metadata normalization and sanitization
- Updated LLM configuration to model ID in API and frontend
- Added computed model status for LLM availability in GraphSettings
- Added pulsing animation to stop button and improved loading indicators
- Added language support to summary generation payload
- Enabled parent-child chunking and question generation in KnowledgeBaseEditorModal
- Standardized loading and avatar sizes across components
- Updated storage size calculations for vector embeddings
### 🐛 Bug Fixes
- Fixed Milvus retriever related issues
- Fixed docparser handling of nested linked images and URL parentheses
- Fixed chunk timestamp update to use NOW() for consistency
- Fixed NVIDIA VLM model API default BaseURL
- Fixed auth error messages and unified username validation length
- Enforced 7500 char limit in chunker to prevent embedding API errors
- Fixed builtin engine handling of simple formats
- Fixed dev-app command error on Linux
- Fixed vue-i18n placeholder escaping, computed ref accessor, and missing ru-RU keys
- Fixed multilingual support for TDesign components and locale key synchronization
- Fixed session title word count requirement
- Updated default language setting to Chinese
- Fixed MinIO endpoint format error message
- Fixed storage engine warning display and styling
- Fixed manual download button layout and polish
- Fixed sanitize tab chars and double .md extension in manual download filename
### 📚 Documentation
- Added documentation for Slack IM channel integration
- Added design specification and implementation plan for manual knowledge download
### 🔧 Refactoring
- Streamlined agent document info retrieval and enhanced chunk search logic
- Improved IM tool invocation and result formatting
- Consolidated QA request handling and improved session service interface
- Simplified fullscreen handling and improved styling in document preview
- Updated conversation handling and image description requirements
- Changed tokenization method for improved processing
## [0.3.3] - 2026-03-05
### 🚀 New Features
- **NEW**: Parent-Child Chunking — implement parent-child chunking strategy for enhanced context management with hierarchical chunk retrieval
- **NEW**: Knowledge Base Pinning — support pinning frequently-used knowledge bases for quick access
- **NEW**: Fallback Response — add fallback response handling and UI indicators when no relevant results are found
- **NEW**: Image Icon Detection — add image icon detection and filtering functionality for document processing
- **NEW**: Passage Cleaning for Rerank — add passage cleaning functionality for rerank model to improve relevance scoring
- **NEW**: ListChunksByParentIDs — add ListChunksByParentIDs method and enhance chunk merging logic for parent-child retrieval
- **NEW**: GetUserByTenantID — add GetUserByTenantID functionality to user repository and service
### ⚡ Improvements
- Enhanced Docker setup with entrypoint script and skill management
- Enhanced storage engine connectivity check with auto-creation of buckets
- Enhanced MinerU response handling for document parsing
- Enhanced sidebar functionality and UI responsiveness
- Updated chunk size configurations for knowledge base processing
- Enforced maximum length for tool names in MCPTool for safety
- Updated theme and UI styles across components for visual consistency
- Updated at-icon SVG and enhanced input field component
- Standardized border styles and adjusted component styles for improved consistency
### 🐛 Bug Fixes
- Fixed cleanupCtx created at startup potentially expiring before shutdown
## [0.3.2] - 2026-03-04
### 🚀 New Features
- **NEW**: Knowledge Search — new "Knowledge Search" entry point with semantic retrieval, supporting bringing search results directly into the conversation window
- **NEW**: Parser Engine Configuration — support configuring document parser engines and storage engines for different sources in settings, with per-file-type parser engine selection in knowledge base
- **NEW**: Storage Provider Configuration — support configuring storage providers (local, MinIO, COS, Volcengine TOS) per data source with standardized configuration and backward compatibility
- **NEW**: Milvus Vector Database — added Milvus as a new vector database backend for knowledge retrieval
- **NEW**: Volcengine TOS — added Volcengine TOS object storage support
- **NEW**: Mermaid Rendering — support mermaid diagram rendering in chat with fullscreen viewer, zoom, pan, toolbar and export
- **NEW**: Batch Conversation Management — batch management and delete all sessions functionality
- **NEW**: Remote URL Knowledge Creation — support creating knowledge entries from remote file URLs
- **NEW**: Async Knowledge Re-parse — async API for re-processing existing knowledge documents
- **NEW**: User Memory Graph Preview — preview of user-level memory graph visualization
- **NEW**: Tenant Access Authorization — tenant access authorization in TenantHandler
- **NEW**: Database Query Tool — built-in database query tool for agents with automatic tenant isolation and soft-delete filtering
### ⚡ Improvements
- Image rendering in local storage mode during conversations with optimized streaming image placeholders
- Embedded document preview component for previewing user-uploaded original files
- Knowledge base, agent, and shared space list page interaction redesign with improved UI elements
- Storage configuration standardization with enhanced backward compatibility
- Dynamic file service resolution for knowledge extraction
- SSRF safety checks enhanced in MinerUCloudReader
- Nginx configuration improved for file handling
- Dockerfile and build scripts with customizable APT mirror support
- System information display with database version
- Path and filename validation security utilities
- Vector embeddings indexing enhanced with TagID and IsRecommended fields
- Korean (한국어) README translation
### 🐛 Bug Fixes
- Handle thinking content in Ollama chat responses
- Batch manage dialog now loads all sessions independently from API
- Prevent modal from closing when text selection extends beyond dialog boundary
- Handle empty metadata case in Knowledge struct
- Swagger interface documentation generation error resolved
- Auth form validation check to handle non-boolean responses
- Helm frontend APP_HOST env default value corrected
### 🗑️ Removals
- Removed Lite edition support and related configurations
## [0.3.1] - 2026-02-10
### 🚀 New Features
- **NEW**: Remote Backend Support — support remote backend and HTTPS proxy configuration
- **NEW**: Enhanced Document Upload — expanded document upload capabilities in KnowledgeBase component
### ⚡ Improvements
- Enhanced resource management in ListSpaceSidebar and KnowledgeBaseList
### 🐛 Bug Fixes
- Add clipboard API fallback for non-secure contexts
- DuckDB spatial extension not found error
- Data analysis knowledge files loaded via presigned URLs
## [0.3.0] - 2026-02-09
### 🚀 New Features
- **NEW**: Shared Space — shared space management with member invitations, shared knowledge bases and agents across members, tenant isolation for retrieval
- **NEW**: Agent Skills — agent skills with preloaded skills for smart-reasoning agent, sandbox-based execution environment
- **NEW**: Bing Search — added Bing as a new web search provider
- **NEW**: Agent Thinking Mode — support thinking mode for agents, strip thinking content from output
- **NEW**: Web Fetch DNS pinning and validation improvements
- **NEW**: FAQ matched question field in search results
- **NEW**: Knowledge base mentioned-only retrieval option
### ⚡ Improvements
- Redis ACL support with `REDIS_USERNAME` environment variable
- Configurable global log level via environment variable
- Use `num_ctx` instead of `truncate` for embedding truncation (Ollama compatibility)
- Large FAQ imports offloaded to object storage
- Unified card styles and layout consistency across components
- OCR module restructured with centralized configuration
- Enhanced MCP tool name and description handling for security
- Structured logger replacing standard log in main and recovery middleware
### 🐛 Bug Fixes
- MCP Client connection state not marked as closed after SSE connection loss
- Clear tag selection state when re-entering knowledge base
- Rune handling for correct chunk merging
- Host extraction from completion_url handling both v1 and non-v1 endpoints
- SQL injection prevention via OR conditions with comprehensive validation
- Switch to append mode on retry to prevent data loss
- Parser file_extension for markitdown compatibility
### 🔒 Security Enhancements
- SSRF-safe HTTP client for URL imports and fetching
- SQL validation logic centralized and simplified
- Sandbox-based agent skills execution with security isolation
## [0.2.10] - 2026-01-16
### 🚀 New Features
- **NEW**: Support for deleting document type tags
- **NEW**: Google provider for web search
- **NEW**: Added multiple mainstream model providers including GPUStack
- **NEW**: AgentQA request field support
- **NEW**: FAQ batch import dry run functionality
- **NEW**: Support tenant ID and keyword simultaneous search
- **NEW**: FAQ import result persistence display
- **NEW**: SeqID auto-increment tag support
- **NEW**: Support adding similar questions to FAQ entries
- **NEW**: FAQ import success entry details display
- **NEW**: Enhanced task ID generator replacing UUID
### ⚡ Improvements
- **IMPROVED**: Chunk merge/split logic with validation
- **IMPROVED**: FAQ index update and deletion performance optimization
- **IMPROVED**: Batch indexing with concurrent save optimization
- **IMPROVED**: Retriever engine checks and mapping exposure refactored
- **IMPROVED**: FAQ import and validation logic merged
- **IMPROVED**: Error handling and unused code removal
### 🐛 Bug Fixes
- **FIXED**: Disabled stdio transport to prevent command injection risks
- **FIXED**: FAQ update duplicate check logic
- **FIXED**: Migration script table name spelling error
- **FIXED**: Unused tag cleanup ignoring soft-deleted records
- **FIXED**: FAQ import tag cleanup logic
- **FIXED**: FAQ entry tag change not updating issue
- **FIXED**: Ensure "Uncategorized" tag appears first
- **FIXED**: Potential crash from slice out of bounds
- **FIXED**: Tag deletion using correct ID field
- **FIXED**: FAQ tag filtering using seq_id instead of id type issue
- **FIXED**: Critical vulnerability V-001 resolved
- **FIXED**: Added EncodingFormat parameter for ModelScope embedding models
- **FIXED**: Secure command execution with sandbox for doc_parser
## [0.2.9] - 2026-01-10
### 🚀 New Features
- **NEW**: Batch tag name supplement in search results
- **NEW**: Return updated data when updating FAQ entries
- **NEW**: Convert uncategorized FAQ entries to "Uncategorized" tag
## [0.2.8] - 2025-12-31
### 🚀 New Features
- **NEW**: Data Analyst Agent & Tools
- Added built-in Data Analyst agent
- Added DataSchema tool for retrieving schema from CSV/Excel files
- Support for agent file type restrictions
- **NEW**: Thinking Mode Support
- Added configuration support for Thinking mode
- Added Thinking field to Summary configuration
- **NEW**: Enhanced File & Storage Management
- Support listing MinIO buckets and permissions
- Configurable file upload size limits
- Full-text merge view mode
- **NEW**: Conversation Enhancements
- Added option to disable automatic title generation
- Enhanced KnowledgeQAStream parameters
- Support for streaming response types and tool calls
- **NEW**: System & Configuration
- Added `WEKNORA_VERSION` environment variable support
- APK mirror configuration support in Docker
- Enhanced chunking separator options
- FAQ two-level priority tag filtering
- Update index fields when batch updating tags
### ⚡ Improvements
- **IMPROVED**: Agent & Model Handling
- Unified agent not ready message logic
- Optimized built-in agent configuration synchronization
- Removed model locking logic to allow free switching
- Enhanced model selection and error handling
- **IMPROVED**: Refactoring
- Simplified session creation request structure
- Converted knowledgeRefs to References type
- Refactored SSE stream setup
- Refactored bucket policy parsing logic
- Streamlined Docker package installation
### 🐛 Bug Fixes
- **FIXED**: Localization placeholder display issues
- **FIXED**: Duplicate tag creation and stream response parsing
- **FIXED**: Missing WebSearchStateService in parallel search
- **FIXED**: Model list refresh on settings popup close
- **FIXED**: Asynq Redis DB configuration
- **FIXED**: Menu deletion logic and count updates
- **FIXED**: OpenAI API compatibility (exclude ChatTemplateKwargs)
- **FIXED**: Handled Nginx 413 (Payload Too Large) requests
- **FIXED**: Added existence check for embeddings table in tag_id migration
## [0.2.6] - 2025-12-29
### 🚀 New Features
- **NEW**: Custom Agent System
- Support for creating, configuring, and selecting custom agents
- Agent feature indicators display with MCP service capability support
- Built-in agent sorting logic ensuring multi-turn conversation auto-enabled in agent mode
- Agent knowledge base selection modes: all/specified/disabled
- **NEW**: Helm Chart for Kubernetes Deployment
- Complete Helm chart for Kubernetes deployment
- Neo4j template support for GraphRAG functionality
- Versioned image tags and official images compatibility
- **NEW**: Enhanced FAQ Management
- FAQ entry retrieval API supporting single entry query by ID
- FAQ list sorting by update time (ascending/descending)
- Enhanced FAQ search with field-specific search (standard question/similar questions/answer/all)
- Batch update exclusion for FAQ entries in ByTag operations
- Tag deletion with content_only mode to delete only tag contents
- **NEW**: Multi-Platform Model Adaptation
- Support for multiple platform model configurations
- Title generation model configuration
- Knowledge base selection mode without mandatory rerank model check
- **NEW**: Korean Language Support
- Added Korean (한국어) internationalization support
### ⚡ Improvements
- **IMPROVED**: Knowledge Base Operations
- Async knowledge base deletion with background cleanup via ProcessKBDelete
- Multi-knowledge base search support with specified file ID filtering
- Optimized knowledge chunk pagination with type-specific search and sorting logic
- Enhanced SearchKnowledgeRequest structure with backward compatibility
- **IMPROVED**: Prompt Template System
- Restructured prompt template system with multi-scenario template configuration
- Unified system prompts with optimized agent selector interface
- **IMPROVED**: Tag Management
- Enhanced tag deletion with ID exclusion support
- Async index deletion task for optimized deletion flow
- Batch TagID update functionality
- Optimized tag name batch queries for improved efficiency
- **IMPROVED**: API Documentation
- Updated API documentation links to new paths
- Added knowledge search API documentation
- Enhanced FAQ and tag deletion interface documentation
- Removed hardcoded host configuration from Swagger docs
### 🐛 Bug Fixes
- **FIXED**: Tag ID handling logic for empty strings and UntaggedTagID conditions
- **FIXED**: JSON query compatibility for different database types (MySQL/PostgreSQL)
- **FIXED**: GORM batch insert issue where zero-value fields (IsEnabled, Flags) were ignored
- **FIXED**: Helm chart versioned image tags and runAsNonRoot compatibility
### 🔧 Refactoring
- **REFACTORED**: Removed security validation and length limits, simplified input processing logic
- **REFACTORED**: Enhanced agent configuration with improved selection and state management
## [0.2.5] - 2025-12-22
### 🚀 New Features
- **NEW**: In-Input Knowledge Base and File Selection
- Support selecting knowledge bases and files directly within the input box
- Display @mentioned knowledge bases and files in message stream
- Dynamic placeholder text based on knowledge base and web search status
- **NEW**: API Key Authentication Support
- Added API Key authentication mechanism
- Optimized Swagger documentation security configuration
- Disabled Swagger documentation access in non-production environments by default
- **NEW**: User Registration Control
- Added `DISABLE_REGISTRATION` environment variable to control user registration
- **NEW**: User Conversation Model Selection
- Added user conversation model selection state management with store two-way binding
### 🔒 Security Enhancements
- **ENHANCED**: MCP stdio transport security validation to prevent command injection attacks
- **ENHANCED**: SQL security validation rebuilt using PostgreSQL official parser for enhanced query protection
- **ENHANCED**: Security policy updated with vulnerability reporting guidelines
### ⚡ Improvements
- **IMPROVED**: Streaming rendering mechanism optimized for token-by-token Markdown content parsing
- **IMPROVED**: FAQ import progress refactored to use Redis for task state storage
- **IMPROVED**: Enhanced knowledge base and search functionality logic
### 🐛 Bug Fixes
- **FIXED**: Corrected knowledge ID retrieval in FAQ import tasks
- **FIXED**: Force removal of legacy vlm_model_id field from knowledge_bases table
- **FIXED**: Disabled Ollama option for ReRank models in model management with tooltip
## [0.2.4] - 2025-12-17
### 🚀 New Features
- **NEW**: FAQ Entry Export
- Support CSV format export for FAQ entries
- **NEW**: Asynchronous Knowledge Base Copy
- Progress tracking and incremental sync support
- Improved SourceID conversion logic and tag mapping for knowledge base copying
- **NEW**: FAQ Index Type Separation
- Added is_enabled field filtering and batch update optimization
- **NEW**: Swagger API Documentation
- Enhanced Swagger API documentation generation
### 🐛 Bug Fixes
- **FIXED**: Optimized tag mapping logic and FAQ cloning during knowledge base copy
- **FIXED**: Adjusted Knowledge struct Metadata field type to json.RawMessage
- **FIXED**: Added tenant information to context during knowledge base copy
- **FIXED**: Database migration compatibility with older versions
## [0.2.3] - 2025-12-16
### 🚀 New Features
- **NEW**: Chat Message Image Preview
- Support image preview in chat messages
- Updated Agent prompts to include image-text result output
- Image information display in knowledge search and list tools
- **NEW**: FAQ Answer Strategy Field
- Support 'all' (return all answers) and 'random' (randomly return one answer) modes
- **NEW**: FAQ Recommendation Field
- Added recommendation field for FAQ entries
- Support batch update by tag
### ⚡ Improvements
- **IMPROVED**: Optimized async task retry logic to update failure status only on last retry
- **IMPROVED**: Enhanced hybrid search result fusion strategy
- **IMPROVED**: Updated MinIO, Jaeger, and Neo4j image versions for stability
### 🐛 Bug Fixes
- **FIXED**: Environment variable saving logic in MCP service dialog
- **FIXED**: AUTO_RECOVER_DIRTY environment variable logic in database migration, enabled by default
### ⚡ Infrastructure Improvements
- **IMPROVED**: Updated Dockerfile with uvx permission adjustments and Node version upgrade
## [0.2.2] - 2025-12-15
### 🚀 New Features
- **NEW**: FAQ Answer Strategy Configuration
- Added answer strategy field for FAQ entries, supporting `all` (return all answers) and `random` (randomly return one answer) modes
- More flexible FAQ response control
- **NEW**: FAQ Recommendation Feature
- Added recommendation field for FAQ entries to mark recommended Q&A
- Support batch update of FAQ recommendation status by tag
- Optimized tag deletion logic
- **NEW**: Document Summary Status Tracking
- Added `SummaryStatus` field to Knowledge struct
- Support tracking document summary generation status
### ⚡ Infrastructure Improvements
- **IMPROVED**: Docker Build Optimization
- Fixed system package conflicts during pip dependency installation with `--break-system-packages` parameter
- Adjusted uvx permission configuration
- Upgraded Node version
- **IMPROVED**: Database Initialization
- Optimized database initialization logic with conditional embeddings handling
### 🐛 Bug Fixes
- **FIXED**: Corrected `MINIO_USE_SSL` environment variable parsing logic
## [0.2.1] - 2025-12-08
### 🚀 New Features
- **NEW**: Qdrant Vector Database Support
- Full integration with Qdrant as retriever engine
- Support for both vector similarity search and full-text keyword search
- Dynamic collection creation based on embedding dimensions (e.g., `weknora_embeddings_768`)
- Multilingual tokenizer support for Chinese/Japanese/Korean text search
- Professional Chinese word segmentation using jieba for keyword queries
### ⚡ Infrastructure Improvements
- **IMPROVED**: Docker Compose Profile Management
- Added profiles for optional services: `minio`, `qdrant`, `neo4j`, `jaeger`, `full`
- Enhanced `dev.sh` script with `--minio`, `--qdrant`, `--neo4j`, `--jaeger`, `--full` flags
- Pinned Qdrant Docker image version to `v1.16.2` for stability
- **IMPROVED**: Database Migration System
- Added automatic dirty state recovery for failed migrations
- Added Neo4j connection retry mechanism with exponential backoff
- Improved migration error handling and logging
- **IMPROVED**: Retriever Engine Configuration
- Retriever engines now auto-configured from `RETRIEVE_DRIVER` environment variable
- No longer required to write retriever config during user registration
- Added `GetEffectiveEngines()` method for dynamic engine resolution
- Centralized engine mapping in `types/tenant.go`
### 🐛 Bug Fixes
- **FIXED**: Qdrant keyword search returning empty results for Chinese queries
- **FIXED**: Image URL validation logic simplified for better compatibility
### 📚 Documentation
- Added Qdrant configuration examples in docker-compose files
## [0.2.0] - 2025-12-05
### 🚀 Major Features
- **NEW**: ReACT Agent Mode
- Added ReACT Agent mode that can use built-in tools to retrieve knowledge bases
- Support for calling user-configured MCP tools and web search tools to access external services
- Multiple iterations and reflection to provide comprehensive summary reports
- Cross-knowledge base retrieval support, allowing selection of multiple knowledge bases
- **NEW**: Model Management System
- Centralized model configuration
- Added model selection in knowledge base settings page
- Built-in model sharing functionality across multiple tenants
- Tenants can use shared models but are restricted from editing or viewing model details
- **NEW**: Multi-Type Knowledge Base Support
- Support for creating FAQ and document knowledge base types
- Folder import functionality
- URL import functionality
- Tag management system
- Online knowledge entry capability
- **NEW**: FAQ Knowledge Base
- New FAQ-type knowledge base
- Batch import and batch delete functionality
- Online FAQ entry
- Online FAQ testing capability
- **NEW**: Conversation Strategy Configuration
- Support for configuring Agent models and normal mode models
- Configurable retrieval thresholds
- Online Prompt configuration
- Precise control over multi-turn conversation behavior and retrieval execution methods
- **NEW**: Web Search Integration
- Support for extensible web search engines
- Built-in DuckDuckGo search engine
- **NEW**: MCP Tool Integration
- Support for extending Agent capabilities through MCP
- Built-in uvx and npx MCP launcher tools
- Support for three transport methods: Stdio, HTTP Streamable, and SSE
### 🎨 UI/UX Improvements
- **REDESIGNED**: Conversation interface with Agent mode/normal mode switching
- Added Agent mode/normal mode toggle in conversation input box
- Support for enabling/disabling web search
- Support for selecting conversation models
- **REDESIGNED**: Login page UI adjustments
- **ENHANCED**: Session list with time-ordered grouping
- **NEW**: Quick Actions area for unified UI visual effects
- **IMPROVED**: Knowledge base list cards
- Display knowledge base type, knowledge count, build status
- Show advanced settings capabilities
- **NEW**: Breadcrumb navigation in FAQ and document list pages
- Quick navigation and knowledge base switching
- **ENHANCED**: Knowledge base settings in document list page
- **REDESIGNED**: Knowledge base settings page
- Separate configuration for knowledge base type, models, chunking methods, and advanced settings
- **NEW**: Global settings page for permissions
- Configure models, web search, MCP services, and Agent mode
- **IMPROVED**: Chunk details page display
- **NEW**: Knowledge classification and tagging support
- **ENHANCED**: Conversation flow page with tool call execution process display
### ⚡ Infrastructure Upgrades
- **NEW**: MQ-based async task management
- Introduced MQ for async task state maintenance
- Ensures task integrity even after service abnormal restart
- **NEW**: Automatic database migration
- Support for automatic database schema and data migration during version upgrades
- **NEW**: Fast development mode
- Added docker-compose.dev.yml file for quick development environment startup
- Improved development workflow efficiency
- **IMPROVED**: Log structure optimization
- **NEW**: Event subscription and publishing mechanism
- Support for event handling at various steps in user query processing flow
### 🐛 Bug Fixes
- Various bug fixes and stability improvements
### 📚 Documentation Updates
- Updated README files with v0.2.0 highlights (English, Chinese, Japanese)
- Added latest updates section in all README files
- Updated architecture diagrams and feature matrices
## [0.1.6] - 2025-11-24
### Document Parser Enhancements
- NEW: Added CSV, XLSX, XLS file parsing support (spreadsheet processing, tabular data extraction)
- NEW: Web page parser (dedicated class, optimized web image encoding, improved dependency management)
### Document Processing Improvements
- NEW: MarkdownTableUtil (reduced whitespace, improved table readability/consistency)
- NEW: Document model class (structured models for type safety, optimized config/parsing logic)
- UPGRADED: Docx2Parser (enhanced timeout handling, better image processing, optimized OCR backend)
### Internationalization
- NEW: English/Russian multi-language support (vue-i18n integration, translated UI/text/errors, multilingual docs for knowledge graph/MCP config)
### Bug Fixes
- Fixed menu component integration issues
- Fixed Darwin (macOS) memory check regex error (resolved empty output)
- Fixed model availability check (unified logic, auto ":latest" tag, prevented duplicate pull calls)
- Fixed Docker Compose security vulnerability (addressed writable filesystem issue)
### Refactoring & Optimization
- Refactored parser logging/API checks (simplified exception handling, better error reporting)
- Refactored chunk processing (removed redundant header handling, updated examples)
- Refactored module organization (docreader structure, proto/client imports, Docker config, absolute imports)
### Documentation Updates
- Updated API Key acquisition docs (web registration + account page retrieval)
- Updated Docker Compose setup guide (comprehensive instructions, config adjustments)
- Updated multilingual docs (added knowledge graph/MCP config guides, directory structure)
- Removed deprecated hybrid search API docs
### Code Cleanup
- Removed redundant Docker build parameters
- Updated .gitignore rules
- Optimized import statements/type hints
- Cleaned redundant logging/comments
### CI/CD Improvements
- Added new CI/CD trigger branches
- Added build concurrency control
- Added disk space cleanup automation
## [0.1.5] - 2025-10-20
### Features & Enhancements
- Added multi-knowledgebases operation support and management (UI & backend logic)
- Enhanced tenant information management: New tenant page with user-friendly storage quota and usage rate display (see TenantInfo.vue)
- Initialization Wizard improvements: Stricter form validation, VLM/OpenAI compatible URL verification, and multimodal file upload preview & validation (see InitializationContent.vue)
- Backend: API Key automatic generation and update logic (see types.Tenant & tenantService.UpdateTenant)
### UI / UX
- Restructured settings page and initialization page layouts; optimized button states, loading states, and prompt messages; improved upload/preview experience
- Enhanced menu component: Multi-knowledgebase switching and pre-upload validation logic (see menu.vue)
- Hidden/protected sensitive information (e.g., API Keys) and added copy interaction prompts (see TenantInfo.vue)
### Security Fixes
- Fixed potential frontend XSS vulnerabilities; enhanced input validation and Content Security Policy
- Hidden API Keys in UI and improved copy behavior prompts to strengthen information leakage protection
### Bug Fixes
- Resolved OCR/AVX support-related issues and image parsing concurrency errors
- Fixed frontend routing/login redirection issues and file download content errors
- Fixed docreader service health check and model prefetching issues
### DevOps / Building
- Improved image building scripts: Enhanced platform/architecture detection (amd64 / arm64) and injected version information during build (see get_version.sh & build_images.sh)
- Refined Makefile and build process to facilitate CI injection of LDFLAGS (see Makefile)
- Improved usage and documentation for scripts and migration tools (migrate) (see migrate.sh)
### Documentation
- Updated README and multilingual documentation (EN/CN/JA) along with release/CHANGELOG (see CHANGELOG.md & README.md for details)
- Added MCP server usage instructions and installation guide (see mcp-server/INSTALL.md)
### Developer / Internal API Changes (For Reference)
- New/updated backend system information response structure: handler.GetSystemInfoResponse
- Tenant data structure and JSON storage fields: types.Tenant
## [0.1.4] - 2025-09-17
### 🚀 Major Features
- **NEW**: Multi-knowledgebases operation support
- Added comprehensive multi-knowledgebase management functionality
- Implemented multi-data source search engine configuration and optimization logic
- Enhanced knowledge base switching and management in UI
- **NEW**: Enhanced tenant information management
- Added dedicated tenant information page
- Improved user and tenant management capabilities
### 🎨 UI/UX Improvements
- **REDESIGNED**: Settings page with improved layout and functionality
- **ENHANCED**: Menu component with multi-knowledgebase support
- **IMPROVED**: Initialization configuration page structure
- **OPTIMIZED**: Login page and authentication flow
### 🔒 Security Fixes
- **FIXED**: XSS attack vulnerabilities in thinking component
- **FIXED**: Content Security Policy (CSP) errors
- **ENHANCED**: Frontend security measures and input sanitization
### 🐛 Bug Fixes
- **FIXED**: Login direct page navigation issues
- **FIXED**: App LLM model check logic
- **FIXED**: Version script functionality
- **FIXED**: File download content errors
- **IMPROVED**: Document content component display
### 🧹 Code Cleanup
- **REMOVED**: Test data functionality and related APIs
- **SIMPLIFIED**: Initialization configuration components
- **CLEANED**: Redundant UI components and unused code
## [0.1.3] - 2025-09-16
### 🔒 Security Features
- **NEW**: Added login authentication functionality to enhance system security
- Implemented user authentication and authorization mechanisms
- Added session management and access control
- Fixed XSS attack vulnerabilities in frontend components
### 📚 Documentation Updates
- Added security notices in all README files (English, Chinese, Japanese)
- Updated deployment recommendations emphasizing internal/private network deployment
- Enhanced security guidelines to prevent information leakage risks
- Fixed documentation spelling issues
### 🛡️ Security Improvements
- Hide API keys in UI for security purposes
- Enhanced input sanitization and XSS protection
- Added comprehensive security utilities
### 🐛 Bug Fixes
- Fixed OCR AVX support issues
- Improved frontend health check dependencies
- Enhanced Docker binary downloads for target architecture
- Fixed COS file service initialization parameters and URL processing logic
### 🚀 Features & Enhancements
- Improved application and docreader log output
- Enhanced frontend routing and authentication flow
- Added comprehensive user management system
- Improved initialization configuration handling
### 🛡️ Security Recommendations
- Deploy WeKnora services in internal/private network environments
- Avoid direct exposure to public internet
- Configure proper firewall rules and access controls
- Regular updates for security patches and improvements
## [0.1.2] - 2025-09-10
- Fixed health check implementation for docreader service
- Improved query handling for empty queries
- Enhanced knowledge base column value update methods
- Optimized logging throughout the application
- Added process parsing documentation for markdown files
- Fixed OCR model pre-fetching in Docker containers
- Resolved image parser concurrency errors
- Added support for modifying listening port configuration
## [0.1.0] - 2025-09-08
- Initial public release of WeKnora.
- Web UI for knowledge upload, chat, configuration, and settings.
- RAG pipeline with chunking, embedding, retrieval, reranking, and generation.
- Initialization wizard for configuring models (LLM, embedding, rerank, retriever).
- Support for local Ollama and remote API models.
- Vector backends: PostgreSQL (pgvector), Elasticsearch; GraphRAG support.
- End-to-end evaluation utilities and metrics.
- Docker Compose for quick startup and service orchestration.
- MCP server support for integrating with MCP-compatible clients.
[0.3.4]: https://github.com/Tencent/WeKnora/tree/v0.3.4
[0.3.3]: https://github.com/Tencent/WeKnora/tree/v0.3.3
[0.3.2]: https://github.com/Tencent/WeKnora/tree/v0.3.2
[0.3.1]: https://github.com/Tencent/WeKnora/tree/v0.3.1
[0.3.0]: https://github.com/Tencent/WeKnora/tree/v0.3.0
[0.2.10]: https://github.com/Tencent/WeKnora/tree/v0.2.10
[0.2.9]: https://github.com/Tencent/WeKnora/tree/v0.2.9
[0.2.8]: https://github.com/Tencent/WeKnora/tree/v0.2.8
[0.2.7]: https://github.com/Tencent/WeKnora/tree/v0.2.7
[0.2.6]: https://github.com/Tencent/WeKnora/tree/v0.2.6
[0.2.5]: https://github.com/Tencent/WeKnora/tree/v0.2.5
[0.2.4]: https://github.com/Tencent/WeKnora/tree/v0.2.4
[0.2.3]: https://github.com/Tencent/WeKnora/tree/v0.2.3
[0.2.2]: https://github.com/Tencent/WeKnora/tree/v0.2.2
[0.2.1]: https://github.com/Tencent/WeKnora/tree/v0.2.1
[0.2.0]: https://github.com/Tencent/WeKnora/tree/v0.2.0
[0.1.4]: https://github.com/Tencent/WeKnora/tree/v0.1.4
[0.1.3]: https://github.com/Tencent/WeKnora/tree/v0.1.3
[0.1.2]: https://github.com/Tencent/WeKnora/tree/v0.1.2
[0.1.0]: https://github.com/Tencent/WeKnora/tree/v0.1.0
================================================
FILE: LICENSE
================================================
Tencent is pleased to support the open source community by making this project available.
Copyright (C) 2025 Tencent. All rights reserved.
This project is licensed under the MIT License except for the third-party components listed below, which is licensed under different terms. Tencent does not impose any additional limitations beyond what is outlined in the respective licenses of these third-party components. Users must comply with all terms and conditions of original licenses of these third-party components and must ensure that the usage of the third party components adheres to all relevant laws and regulations.
Terms of the MIT License:
--------------------------------------------------------------------
Copyright (C) 2025 Tencent. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the " Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------
Other third-party components:
In case you believe there have been errors in the attribution below, you may submit the concerns to us for review and correction.
Open Source Software Licensed under the Apache-2.0:
--------------------------------------------------------------------
1. paddle-1.1.15
Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved,
2. playwright-1.56.0
Portions Copyright (c) Microsoft Corporation., Portions Copyright 2017 Google Inc.
3. grpc-health-7.5.0
Copyright (c) 2025 The gRPC Authors
Terms of the Apache-2.0:
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Open Source Software Licensed under the BSD:
--------------------------------------------------------------------
1. numpy-2.3.5
Copyright (c) 2005-2025, NumPy Developers. All rights reserved.
Terms of the BSD:
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
Neither the name of the ORGANIZATION nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Open Source Software Licensed under the MIT:
--------------------------------------------------------------------
1. rpds-py-0.30.0
Copyright (c) 2023 Julian Berman
Terms of the MIT:
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Open Source Software Licensed under the MIT-CMU:
--------------------------------------------------------------------
1. PIL-1.1.5a2
Copyright © 1997-2011 by Secret Labs AB, Copyright © 1995-2011 by Fredrik Lundh and contributors, Copyright © 2010 by Jeffrey A. Clark and contributors
Terms of the MIT-CMU:
Permission to use, copy, modify and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appears in all copies and that both that copyright
notice and this permission notice appear in supporting documentation, and that
the name of CMU and The Regents of the University of California not be used in
advertising or publicity pertaining to distribution of the software without
specific written permission.
CMU AND THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL CMU OR THE REGENTS OF THE UNIVERSITY OF CALIFORNIA BE
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM THE LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Open Source Software Licensed under the Python-2.0:
--------------------------------------------------------------------
1. typing-extensions-4.15.0
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation, All Rights Reserved, Copyright (c) 1995-2001 Corporation for National Research Initiatives, All Rights Reserved, Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved.
Terms of the Python-2.0:
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------
1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.
2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) Python Software Foundation;
All Rights Reserved" are retained in Python alone or in any derivative version
prepared by Licensee.
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.
4. PSF is making Python available to Licensee on an "AS IS"
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee. This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.
8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.
BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
-------------------------------------------
BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
Individual or Organization ("Licensee") accessing and otherwise using
this software in source or binary form and its associated
documentation ("the Software").
2. Subject to the terms and conditions of this BeOpen Python License
Agreement, BeOpen hereby grants Licensee a non-exclusive,
royalty-free, world-wide license to reproduce, analyze, test, perform
and/or display publicly, prepare derivative works, distribute, and
otherwise use the Software alone or in any derivative version,
provided, however, that the BeOpen Python License is retained in the
Software, alone or in any derivative version prepared by Licensee.
3. BeOpen is making the Software available to Licensee on an "AS IS"
basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
5. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
6. This License Agreement shall be governed by and interpreted in all
respects by the law of the State of California, excluding conflict of
law provisions. Nothing in this License Agreement shall be deemed to
create any relationship of agency, partnership, or joint venture
between BeOpen and Licensee. This License Agreement does not grant
permission to use BeOpen trademarks or trade names in a trademark
sense to endorse or promote products or services of Licensee, or any
third party. As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the
permissions granted on that web page.
7. By copying, installing or otherwise using the software, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.
CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
---------------------------------------
1. This LICENSE AGREEMENT is between the Corporation for National
Research Initiatives, having an office at 1895 Preston White Drive,
Reston, VA 20191 ("CNRI"), and the Individual or Organization
("Licensee") accessing and otherwise using Python 1.6.1 software in
source or binary form and its associated documentation.
2. Subject to the terms and conditions of this License Agreement, CNRI
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 1.6.1
alone or in any derivative version, provided, however, that CNRI's
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
1995-2001 Corporation for National Research Initiatives; All Rights
Reserved" are retained in Python 1.6.1 alone or in any derivative
version prepared by Licensee. Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement. This Agreement together with
Python 1.6.1 may be located on the Internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013. This
Agreement may also be obtained from a proxy server on the Internet
using the following URL: http://hdl.handle.net/1895.22/1013".
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 1.6.1 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 1.6.1.
4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
7. This License Agreement shall be governed by the federal
intellectual property law of the United States, including without
limitation the federal copyright law, and, to the extent such
U.S. federal law does not apply, by the law of the Commonwealth of
Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based
on Python 1.6.1 that incorporate non-separable material that was
previously distributed under the GNU General Public License (GPL), the
law of the Commonwealth of Virginia shall govern this License
Agreement only as to issues arising under or with respect to
Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between CNRI and Licensee. This
License Agreement does not grant permission to use CNRI trademarks or
trade name in a trademark sense to endorse or promote products or
services of Licensee, or any third party.
8. By clicking on the "ACCEPT" button where indicated, or by copying,
installing or otherwise using Python 1.6.1, Licensee agrees to be
bound by the terms and conditions of this License Agreement.
ACCEPT
CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
--------------------------------------------------
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands. All rights reserved.
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.
STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Open Source Software Licensed under the apache-1.1:
--------------------------------------------------------------------
1. pandas-2.3.3
Copyright (c) pandas authors.
You may obtain the source code and detailed information about this component at https://pandas.pydata.org.
Terms of the apache-1.1:
The Apache Software License, Version 1.1
Copyright (c) 2000 The Apache Software Foundation. All rights
reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. The end-user documentation included with the redistribution,
if any, must include the following acknowledgment:
"This product includes software developed by the
Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself,
if and wherever such third-party acknowledgments normally appear.
4. The names "Apache" and "Apache Software Foundation" must
not be used to endorse or promote products derived from this
software without prior written permission. For written
permission, please contact apache@apache.org.
5. Products derived from this software may not be called "Apache",
nor may "Apache" appear in their name, without prior written
permission of the Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Open Source Software Licensed under the apache-2.0:
--------------------------------------------------------------------
1. @xtuc/long-4.2.2
Copyright (c) @xtuc/long authors.
You may obtain the source code and detailed information about this component at https://github.com/dcodeIO/long.js#readme.
2. go.opentelemetry.io/otel/metric-1.37.0
Copyright (c) go.opentelemetry.io/otel/metric authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/metric.
3. long-4.2.2
Copyright (c) long authors.
You may obtain the source code and detailed information about this component at https://github.com/dcodeIO/long.js#readme.
4. github.com/bytedance/sonic-1.13.2
Copyright (c) github.com/bytedance/sonic authors.
You may obtain the source code and detailed information about this component at github.com/bytedance/sonic.
5. go.opentelemetry.io/auto/sdk-1.1.0
Copyright (c) go.opentelemetry.io/auto/sdk authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/auto/sdk.
6. github.com/minio/crc64nvme-1.0.1
Copyright (c) github.com/minio/crc64nvme authors.
You may obtain the source code and detailed information about this component at github.com/minio/crc64nvme.
7. go.opentelemetry.io/otel/trace-1.37.0
Copyright (c) go.opentelemetry.io/otel/trace authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/trace.
8. go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc-1.37.0
Copyright (c) go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc.
9. trafilatura-2.0.0
Copyright (c) trafilatura authors.
You may obtain the source code and detailed information about this component at https://trafilatura.readthedocs.io.
10. go.opentelemetry.io/otel/exporters/otlp/otlptrace-1.37.0
Copyright (c) go.opentelemetry.io/otel/exporters/otlp/otlptrace authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/exporters/otlp/otlptrace.
11. github.com/modern-go/concurrent-0.0.0-20180306012644-bacd9c7ef1dd
Copyright (c) github.com/modern-go/concurrent authors.
You may obtain the source code and detailed information about this component at github.com/modern-go/concurrent.
12. gopkg.in/yaml.v3-3.0.1
Copyright (c) gopkg.in/yaml.v3 authors.
You may obtain the source code and detailed information about this component at https://goproxy.cn/gopkg.in/yaml.v3/@v/v3.0.1.zip.
13. go.opentelemetry.io/otel/exporters/stdout/stdouttrace-1.35.0
Copyright (c) go.opentelemetry.io/otel/exporters/stdout/stdouttrace authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/exporters/stdout/stdouttrace.
14. github.com/richardlehane/msoleps-1.0.4
Copyright (c) github.com/richardlehane/msoleps authors.
You may obtain the source code and detailed information about this component at github.com/richardlehane/msoleps.
15. google.golang.org/grpc-1.73.0
Copyright (c) google.golang.org/grpc authors.
You may obtain the source code and detailed information about this component at google.golang.org/grpc.
16. google.golang.org/genproto/googleapis/rpc-0.0.0-20250603155806-513f23925822
Copyright (c) google.golang.org/genproto/googleapis/rpc authors.
You may obtain the source code and detailed information about this component at google.golang.org/genproto/googleapis/rpc.
17. github.com/modern-go/reflect2-1.0.2
Copyright (c) github.com/modern-go/reflect2 authors.
You may obtain the source code and detailed information about this component at github.com/modern-go/reflect2.
18. github.com/minio/minio-go-7.0.90
Copyright (c) github.com/minio/minio-go authors.
You may obtain the source code and detailed information about this component at github.com/minio/minio-go.
19. requests-default
Copyright (c) requests authors.
You may obtain the source code and detailed information about this component at http://python-requests.org.
20. github.com/minio/md5-simd-1.1.2
Copyright (c) github.com/minio/md5-simd authors.
You may obtain the source code and detailed information about this component at github.com/minio/md5-simd.
21. openai-2.8.1
Copyright (c) openai authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/openai/.
22. go.opentelemetry.io/proto/otlp-1.7.0
Copyright (c) go.opentelemetry.io/proto/otlp authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/proto/otlp.
23. typescript-5.8.3
Copyright (c) Microsoft Corporation. All rights reserved.
24. github.com/wk8/go-ordered-map-2.1.8
Copyright (c) github.com/wk8/go-ordered-map authors.
You may obtain the source code and detailed information about this component at github.com/wk8/go-ordered-map.
25. gopkg.in/yaml-3.0.1
Copyright (c) gopkg.in/yaml authors.
You may obtain the source code and detailed information about this component at gopkg.in/yaml.v3.
26. github.com/go-ini/ini-1.67.0
Copyright (c) github.com/go-ini/ini authors.
You may obtain the source code and detailed information about this component at github.com/go-ini/ini.
27. leb128-1.13.2
Copyright (c) leb128 authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
28. go.opentelemetry.io/otel/sdk-1.37.0
Copyright (c) go.opentelemetry.io/otel/sdk authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/sdk.
29. google.golang.org/genproto/googleapis/api-0.0.0-20250603155806-513f23925822
Copyright (c) google.golang.org/genproto/googleapis/api authors.
You may obtain the source code and detailed information about this component at google.golang.org/genproto/googleapis/api.
30. transformers-4.57.3
Copyright (c) transformers authors.
You may obtain the source code and detailed information about this component at https://github.com/huggingface/transformers.
31. github.com/richardlehane/mscfb-1.0.4
Copyright (c) github.com/richardlehane/mscfb authors.
You may obtain the source code and detailed information about this component at github.com/richardlehane/mscfb.
32. github.com/bytedance/sonic/loader-0.2.4
Copyright (c) github.com/bytedance/sonic/loader authors.
You may obtain the source code and detailed information about this component at github.com/bytedance/sonic/loader.
33. minio-7.2.20
Copyright (c) minio authors.
You may obtain the source code and detailed information about this component at https://github.com/minio/minio-py.
34. github.com/elastic/go-elasticsearch-8.18.0
Copyright (c) github.com/elastic/go-elasticsearch authors.
You may obtain the source code and detailed information about this component at github.com/elastic/go-elasticsearch.
35. paddleocr-3.3.2
Copyright (c) paddleocr authors.
You may obtain the source code and detailed information about this component at https://github.com/PaddlePaddle/PaddleOCR.
36. github.com/elastic/go-elasticsearch-7.17.10
Copyright (c) github.com/elastic/go-elasticsearch authors.
You may obtain the source code and detailed information about this component at github.com/elastic/go-elasticsearch.
37. go.opentelemetry.io/otel-1.37.0
Copyright (c) go.opentelemetry.io/otel authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel.
38. @webassemblyjs/leb128-1.13.2
Copyright 2012 The Obvious Corporation.
39. xlsx-0.20.2
Copyright (c) xlsx authors.
You may obtain the source code and detailed information about this component at https://sheetjs.com/.
40. github.com/go-logr/stdr-1.2.2
Copyright (c) github.com/go-logr/stdr authors.
You may obtain the source code and detailed information about this component at github.com/go-logr/stdr.
41. github.com/sashabaranov/go-openai-1.40.5
Copyright (c) github.com/sashabaranov/go-openai authors.
You may obtain the source code and detailed information about this component at github.com/sashabaranov/go-openai.
42. github.com/spf13/afero-1.12.0
Copyright (c) github.com/spf13/afero authors.
You may obtain the source code and detailed information about this component at github.com/spf13/afero.
43. github.com/parquet-go/parquet-go-0.25.0
Copyright (c) github.com/parquet-go/parquet-go authors.
You may obtain the source code and detailed information about this component at github.com/parquet-go/parquet-go.
44. python-multipart-0.0.20
Copyright (c) 2010 by Armin Ronacher., Copyright 2012, Andrew Dunham
45. dompurify-3.2.6
Copyright 2015 Mario Heiderich, Copyright 2023 Dr.-Ing. Mario Heiderich, Cure53
46. github.com/cloudwego/base64x-0.1.5
Copyright (c) github.com/cloudwego/base64x authors.
You may obtain the source code and detailed information about this component at github.com/cloudwego/base64x.
47. grpc-1.0.0
Copyright (c) Hyperf
48. github.com/klauspost/compress-1.18.0
Copyright (c) github.com/klauspost/compress authors.
You may obtain the source code and detailed information about this component at github.com/klauspost/compress.
49. github.com/go-logr/logr-1.4.3
Copyright (c) github.com/go-logr/logr authors.
You may obtain the source code and detailed information about this component at github.com/go-logr/logr.
50. github.com/elastic/elastic-transport-go-8.7.0
Copyright (c) github.com/elastic/elastic-transport-go authors.
You may obtain the source code and detailed information about this component at github.com/elastic/elastic-transport-go.
51. github.com/neo4j/neo4j-go-driver-6.0.0-alpha.1
Copyright (c) github.com/neo4j/neo4j-go-driver authors.
You may obtain the source code and detailed information about this component at github.com/neo4j/neo4j-go-driver.
Terms of the apache-2.0:
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Open Source Software Licensed under the bsd-new:
--------------------------------------------------------------------
1. ieee754-1.2.0
Copyright (c) ieee754 authors.
You may obtain the source code and detailed information about this component at https://github.com/feross/ieee754#readme.
2. github.com/xuri/excelize-2.10.0
Copyright (c) github.com/xuri/excelize authors.
You may obtain the source code and detailed information about this component at github.com/xuri/excelize.
3. go.opentelemetry.io/otel/metric-1.37.0
Copyright (c) go.opentelemetry.io/otel/metric authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/metric.
4. golang.org/x/text-0.30.0
Copyright (c) golang.org/x/text authors.
You may obtain the source code and detailed information about this component at golang.org/x/text.
5. github.com/yosida95/uritemplate-3.0.2
Copyright (c) github.com/yosida95/uritemplate authors.
You may obtain the source code and detailed information about this component at github.com/yosida95/uritemplate.
6. go.opentelemetry.io/otel/trace-1.37.0
Copyright (c) go.opentelemetry.io/otel/trace authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/trace.
7. go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc-1.37.0
Copyright (c) go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc.
8. torch-2.9.1
Copyright (c) torch authors.
You may obtain the source code and detailed information about this component at https://pytorch.org/.
9. golang.org/x/sys-0.37.0
Copyright (c) golang.org/x/sys authors.
You may obtain the source code and detailed information about this component at golang.org/x/sys.
10. golang.org/x/crypto-0.43.0
Copyright (c) golang.org/x/crypto authors.
You may obtain the source code and detailed information about this component at golang.org/x/crypto.
11. go.opentelemetry.io/otel/exporters/otlp/otlptrace-1.37.0
Copyright (c) go.opentelemetry.io/otel/exporters/otlp/otlptrace authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/exporters/otlp/otlptrace.
12. httpx-0.28.1
Copyright (c) httpx authors.
You may obtain the source code and detailed information about this component at https://github.com/encode/httpx.
13. go.opentelemetry.io/otel/exporters/stdout/stdouttrace-1.35.0
Copyright (c) go.opentelemetry.io/otel/exporters/stdout/stdouttrace authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/exporters/stdout/stdouttrace.
14. github.com/xuri/efp-0.0.1
Copyright (c) github.com/xuri/efp authors.
You may obtain the source code and detailed information about this component at github.com/xuri/efp.
15. golang.org/x/net-0.46.0
Copyright (c) golang.org/x/net authors.
You may obtain the source code and detailed information about this component at golang.org/x/net.
16. starlette-0.50.0
Copyright (c) starlette authors.
You may obtain the source code and detailed information about this component at https://github.com/encode/starlette.
17. @xtuc/ieee754-1.2.0
Copyright (c) 2008, Fair Oaks Labs, Inc.
18. speakingurl-14.0.1
Copyright (c) speakingurl authors.
You may obtain the source code and detailed information about this component at http://pid.github.io/speakingurl/.
19. google.golang.org/protobuf-1.36.9
Copyright (c) google.golang.org/protobuf authors.
You may obtain the source code and detailed information about this component at google.golang.org/protobuf.
20. github.com/twitchyliquid64/golang-asm-0.15.1
Copyright (c) github.com/twitchyliquid64/golang-asm authors.
You may obtain the source code and detailed information about this component at github.com/twitchyliquid64/golang-asm.
21. github.com/pmezard/go-difflib-1.0.0
Copyright (c) github.com/pmezard/go-difflib authors.
You may obtain the source code and detailed information about this component at github.com/pmezard/go-difflib.
22. source-map-0.6.1
Copyright (c) 2009-2011, Mozilla Foundation and contributors
23. golang.org/x/sync-0.17.0
Copyright (c) golang.org/x/sync authors.
You may obtain the source code and detailed information about this component at golang.org/x/sync.
24. github.com/clbanning/mxj-1.8.4
Copyright (c) github.com/clbanning/mxj authors.
You may obtain the source code and detailed information about this component at github.com/clbanning/mxj.
25. github.com/google/uuid-1.6.0
Copyright (c) github.com/google/uuid authors.
You may obtain the source code and detailed information about this component at github.com/google/uuid.
26. uvicorn-0.38.0
Copyright (c) uvicorn authors.
You may obtain the source code and detailed information about this component at https://github.com/encode/uvicorn.
27. sse-starlette-3.0.3
Copyright (c) sse-starlette authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/sse-starlette/.
28. idna-3.7
Copyright (c) 2001-2014 Python Software Foundation, All Rights Reserved, Copyright (c) 1991-2014 Unicode, Inc. All rights reserved., Copyright (c) 2013-2023, Kim Davies and contributors.
29. go.opentelemetry.io/otel/sdk-1.37.0
Copyright (c) go.opentelemetry.io/otel/sdk authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel/sdk.
30. github.com/go-json-experiment/json-0.0.0-20250725192818-e39067aee2d2
Copyright (c) github.com/go-json-experiment/json authors.
You may obtain the source code and detailed information about this component at github.com/go-json-experiment/json.
31. github.com/puerkitobio/goquery-1.10.3
Copyright (c) github.com/puerkitobio/goquery authors.
You may obtain the source code and detailed information about this component at github.com/puerkitobio/goquery.
32. golang.org/x/time-0.13.0
Copyright (c) golang.org/x/time authors.
You may obtain the source code and detailed information about this component at golang.org/x/time.
33. github.com/pierrec/lz4-4.1.21
Copyright (c) github.com/pierrec/lz4 authors.
You may obtain the source code and detailed information about this component at github.com/pierrec/lz4.
34. httpcore-1.0.9
Copyright (c) httpcore authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/httpcore/.
35. github.com/spf13/pflag-1.0.6
Copyright (c) github.com/spf13/pflag authors.
You may obtain the source code and detailed information about this component at github.com/spf13/pflag.
36. go.opentelemetry.io/otel-1.37.0
Copyright (c) go.opentelemetry.io/otel authors.
You may obtain the source code and detailed information about this component at go.opentelemetry.io/otel.
37. fast-uri-3.0.6
Copyright (c) 2011-2021, Gary Court until https: github.com garycourt uri-js commit a1acf730b4bba3f1097c9f52e7d9d3aba8cdcaae, Copyright (c) 2021 The Fastify Team
38. github.com/grpc-ecosystem/grpc-gateway-2.27.1
Copyright (c) github.com/grpc-ecosystem/grpc-gateway authors.
You may obtain the source code and detailed information about this component at github.com/grpc-ecosystem/grpc-gateway.
39. python-dotenv-1.2.1
Copyright (c) python-dotenv authors.
You may obtain the source code and detailed information about this component at https://github.com/theskumar/python-dotenv.
40. click-8.3.1
Copyright (c) click authors.
You may obtain the source code and detailed information about this component at https://palletsprojects.com/p/click/.
41. github.com/bahlo/generic-list-go-0.2.0
Copyright (c) github.com/bahlo/generic-list-go authors.
You may obtain the source code and detailed information about this component at github.com/bahlo/generic-list-go.
42. golang.org/x/arch-0.15.0
Copyright (c) golang.org/x/arch authors.
You may obtain the source code and detailed information about this component at golang.org/x/arch.
43. github.com/fsnotify/fsnotify-1.8.0
Copyright (c) github.com/fsnotify/fsnotify authors.
You may obtain the source code and detailed information about this component at github.com/fsnotify/fsnotify.
44. github.com/xuri/nfp-0.0.2-0.20250530014748-2ddeb826f9a9
Copyright (c) github.com/xuri/nfp authors.
You may obtain the source code and detailed information about this component at github.com/xuri/nfp.
45. google-3.0.0
Copyright (c) google authors.
You may obtain the source code and detailed information about this component at http://breakingcode.wordpress.com/.
46. github.com/google/go-querystring-1.1.0
Copyright (c) github.com/google/go-querystring authors.
You may obtain the source code and detailed information about this component at github.com/google/go-querystring.
47. serialize-javascript-6.0.2
Copyright 2014 Yahoo Inc.
48. github.com/klauspost/compress-1.18.0
Copyright (c) github.com/klauspost/compress authors.
You may obtain the source code and detailed information about this component at github.com/klauspost/compress.
49. source-map-js-1.2.1
Copyright (c) 2009-2011, Mozilla Foundation and contributors
Terms of the bsd-new:
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
Neither the name of the ORGANIZATION nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Open Source Software Licensed under the bsd-simplified:
--------------------------------------------------------------------
1. github.com/andybalholm/cascadia-1.3.3
Copyright (c) github.com/andybalholm/cascadia authors.
You may obtain the source code and detailed information about this component at github.com/andybalholm/cascadia.
2. terser-5.43.1
Copyright (c) terser authors.
You may obtain the source code and detailed information about this component at https://terser.org.
3. esrecurse-4.3.0
Copyright (C) 2014 [Yusuke Suzuki](https: github.com Constellation)
4. estraverse-4.3.0
Copyright (C) 2012-2016 [Yusuke Suzuki](http: github.com Constellation)
5. entities-4.5.0
Copyright (c) Felix B hm
6. estraverse-5.3.0
Copyright (C) 2012-2016 [Yusuke Suzuki](http: github.com Constellation)
7. github.com/redis/go-redis-9.14.0
Copyright (c) github.com/redis/go-redis authors.
You may obtain the source code and detailed information about this component at github.com/redis/go-redis.
8. glob-to-regexp-0.4.1
Copyright (c) 2013, Nick Fitzgerald
9. eslint-scope-5.1.1
Copyright (C) 2012-2013 Yusuke Suzuki (twitter: @Constellation) and other contributors., Copyright JS Foundation and other contributors, https: js.foundation
Terms of the bsd-simplified:
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Open Source Software Licensed under the cc-by-4.0:
--------------------------------------------------------------------
1. caniuse-lite-1.0.30001727
copyright (c) caniuse.com and its other authors
Terms of the cc-by-4.0:
Attribution 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution 4.0 International Public License ("Public License"). To the
extent this Public License may be interpreted as a contract, You are
granted the Licensed Rights in consideration of Your acceptance of
these terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the
Licensed Material available under these terms and conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
d. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
e. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
f. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
g. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
h. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
i. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
j. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
k. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
4. If You Share Adapted Material You produce, the Adapter's
License You apply must not prevent recipients of the Adapted
Material from complying with this Public License.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.
Open Source Software Licensed under the isc:
--------------------------------------------------------------------
1. github.com/davecgh/go-spew-1.1.1
Copyright (c) github.com/davecgh/go-spew authors.
You may obtain the source code and detailed information about this component at github.com/davecgh/go-spew.
2. picocolors-1.1.1
Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov
3. graceful-fs-4.2.11
Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors
4. electron-to-chromium-1.5.183
Copyright (c) electron-to-chromium authors.
You may obtain the source code and detailed information about this component at https://github.com/kilian/electron-to-chromium#readme.
Terms of the isc:
Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright notice
and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
THIS SOFTWARE.
Open Source Software Licensed under the mit:
--------------------------------------------------------------------
1. sortablejs-1.15.6
Copyright (c) sortablejs authors.
You may obtain the source code and detailed information about this component at https://github.com/SortableJS/Sortable#readme.
2. source-map-support-0.5.21
Copyright (c) 2014 Evan Wallace
3. devtools-api-7.7.7
Copyright (c) devtools-api authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/devtools#readme.
4. github.com/goccy/go-json-0.10.5
Copyright (c) github.com/goccy/go-json authors.
You may obtain the source code and detailed information about this component at github.com/goccy/go-json.
5. swiper-12.0.3
Copyright (c) swiper authors.
You may obtain the source code and detailed information about this component at https://swiperjs.com.
6. markdownify-1.2.2
Copyright (c) markdownify authors.
You may obtain the source code and detailed information about this component at http://github.com/matthewwithanm/python-markdownify.
7. github.com/gin-contrib/cors-1.7.5
Copyright (c) github.com/gin-contrib/cors authors.
You may obtain the source code and detailed information about this component at github.com/gin-contrib/cors.
8. github.com/go-playground/universal-translator-0.18.1
Copyright (c) github.com/go-playground/universal-translator authors.
You may obtain the source code and detailed information about this component at github.com/go-playground/universal-translator.
9. @pagefind/linux-arm64-1.3.0
Copyright (c) @pagefind/linux-arm64 authors.
You may obtain the source code and detailed information about this component at https://github.com/pagefind/pagefind#readme.
10. runtime-core-3.5.17
Copyright (c) runtime-core authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/runtime-core#readme.
11. github.com/mark3labs/mcp-go-0.43.0
Copyright (c) github.com/mark3labs/mcp-go authors.
You may obtain the source code and detailed information about this component at github.com/mark3labs/mcp-go.
12. sortablejs-1.15.8
Copyright (c) sortablejs authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/sortablejs.
13. @popperjs/core-2.11.8
Copyright (c) @popperjs/core authors.
You may obtain the source code and detailed information about this component at https://www.npmjs.com/package/@popperjs/core.
14. events-3.3.0
Copyright Joyent, Inc. and other Node contributors.
15. hookable-5.5.3
Copyright (c) hookable authors.
You may obtain the source code and detailed information about this component at https://github.com/unjs/hookable#readme.
16. lodash-es-4.17.12
Copyright (c) lodash-es authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash-es.
17. @babel/parser-7.28.0
Copyright (c) @babel/parser authors.
You may obtain the source code and detailed information about this component at https://babel.dev/docs/en/next/babel-parser.
18. vue-i18n-11.1.12
Copyright (c) vue-i18n authors.
You may obtain the source code and detailed information about this component at https://github.com/intlify/vue-i18n/tree/master/packages/vue-i18n#readme.
19. @vue/runtime-core-3.5.17
Copyright (c) @vue/runtime-core authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/runtime-core#readme.
20. trusted-types-2.0.7
Copyright (c) trusted-types authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/trusted-types.
21. pinia-3.0.3
Copyright (c) pinia authors.
You may obtain the source code and detailed information about this component at https://pinia.vuejs.org.
22. github.com/dustin/go-humanize-1.0.1
Copyright (c) github.com/dustin/go-humanize authors.
You may obtain the source code and detailed information about this component at github.com/dustin/go-humanize.
23. combined-stream-1.0.8
Copyright (c) 2011 Debuggable Limited <felix@debuggable.com>
24. ajv-keywords-5.1.0
Copyright (c) 2016 Evgeny Poberezkin
25. github.com/yanyiwu/gojieba-1.4.5
Copyright (c) github.com/yanyiwu/gojieba authors.
You may obtain the source code and detailed information about this component at github.com/yanyiwu/gojieba.
26. watchpack-2.4.4
Copyright (c) 2014 - 2015 Tobias Koppers, Copyright JS Foundation and other contributors
27. wast-printer-1.14.1
Copyright (c) wast-printer authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
28. @vue/compiler-ssr-3.5.17
Copyright (c) @vue/compiler-ssr authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme.
29. github.com/pelletier/go-toml-2.2.3
Copyright (c) github.com/pelletier/go-toml authors.
You may obtain the source code and detailed information about this component at github.com/pelletier/go-toml.
30. @vue/runtime-dom-3.5.17
Copyright (c) @vue/runtime-dom authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme.
31. anyio-4.12.0
Copyright (c) anyio authors.
You may obtain the source code and detailed information about this component at https://github.com/agronholm/anyio.
32. terser-webpack-plugin-5.3.14
Copyright JS Foundation and other contributors, copyright, licenses and etc) will be preserved
33. fastapi-0.122.0
Copyright (c) fastapi authors.
You may obtain the source code and detailed information about this component at https://github.com/fastapi/fastapi.
34. go.uber.org/dig-1.18.1
Copyright (c) go.uber.org/dig authors.
You may obtain the source code and detailed information about this component at go.uber.org/dig.
35. @vue/compiler-core-3.5.17
Copyright (c) @vue/compiler-core authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/compiler-core#readme.
36. ajv-formats-2.1.1
Copyright (c) 2020 Evgeny Poberezkin
37. h11-0.16.0
Copyright (c) 2016 Nathaniel J. Smith <njs@pobox.com> and other contributors
38. resolve-uri-3.1.2
Copyright (c) resolve-uri authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/resolve-uri#readme.
39. ieee754-1.13.2
Copyright (c) ieee754 authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
40. types-7.28.1
Copyright (c) types authors.
You may obtain the source code and detailed information about this component at https://babel.dev/docs/en/next/babel-types.
41. has-flag-4.0.0
Copyright [Sindre Sorhus](https: sindresorhus.com), Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
42. acorn-8.15.0
Copyright (c) acorn authors.
You may obtain the source code and detailed information about this component at https://github.com/acornjs/acorn.
43. go.uber.org/multierr-1.11.0
Copyright (c) go.uber.org/multierr authors.
You may obtain the source code and detailed information about this component at go.uber.org/multierr.
44. merge-stream-2.0.0
Copyright (c) Stephen Sugden <me@stephensugden.com> (stephensugden.com)
45. github.com/sourcegraph/conc-0.3.0
Copyright (c) github.com/sourcegraph/conc authors.
You may obtain the source code and detailed information about this component at github.com/sourcegraph/conc.
46. github.com/gobwas/httphead-0.1.0
Copyright (c) github.com/gobwas/httphead authors.
You may obtain the source code and detailed information about this component at github.com/gobwas/httphead.
47. github.com/invopop/jsonschema-0.13.0
Copyright (c) github.com/invopop/jsonschema authors.
You may obtain the source code and detailed information about this component at github.com/invopop/jsonschema.
48. @types/node-22.16.3
Copyright (c) @types/node authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
49. vue-router-4.5.1
Copyright (c) vue-router authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/router#readme.
50. supports-color-8.1.1
(c) Sindre Sorhus <sindresorhus@gmail.com> (https: sindresorhus.com), Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com), Copyright [Sindre Sorhus](http: sindresorhus.com)
51. linux-arm64-1.3.0
Copyright (c) linux-arm64 authors.
You may obtain the source code and detailed information about this component at https://github.com/cloudcannon/pagefind#readme.
52. mcp-default
Copyright (c) mcp authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/mcp.
53. es-set-tostringtag-2.1.0
Copyright (c) 2022 ECMAScript Shims
54. escalade-3.2.0
Copyright [Luke Edwards](https: lukeed.com), Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
55. core-base-11.1.12
Copyright (c) core-base authors.
You may obtain the source code and detailed information about this component at https://github.com/intlify/vue-i18n/tree/master/packages/core-base#readme.
56. wasm-opt-1.14.1
Copyright (c) wasm-opt authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
57. devtools-shared-7.7.7
Copyright (c) devtools-shared authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/devtools#readme.
58. httpx-sse-0.4.3
Copyright (c) httpx-sse authors.
You may obtain the source code and detailed information about this component at https://github.com/florimondmanca/httpx-sse.
59. asynckit-0.4.0
Copyright (c) 2016 Alex Indigo
60. parser-7.28.0
Copyright (c) parser authors.
You may obtain the source code and detailed information about this component at https://babel.dev/docs/en/next/babel-parser.
61. jsonschema-specifications-2025.9.1
Copyright (c) jsonschema-specifications authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/jsonschema-specifications/.
62. node-22.16.3
Copyright (c) node authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
63. linux-x64-1.3.0
Copyright (c) linux-x64 authors.
You may obtain the source code and detailed information about this component at https://github.com/cloudcannon/pagefind#readme.
64. @intlify/core-base-11.1.12
Copyright (c) @intlify/core-base authors.
You may obtain the source code and detailed information about this component at https://github.com/intlify/vue-i18n/tree/master/packages/core-base#readme.
65. wasm-gen-1.14.1
Copyright (c) wasm-gen authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
66. @vue/devtools-api-7.7.7
Copyright (c) @vue/devtools-api authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/devtools#readme.
67. @intlify/shared-11.1.12
Copyright (c) @intlify/shared authors.
You may obtain the source code and detailed information about this component at https://github.com/intlify/vue-i18n/tree/master/packages/shared#readme.
68. @jridgewell/sourcemap-codec-1.5.4
Copyright (c) @jridgewell/sourcemap-codec authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/sourcemaps/tree/main/packages/sourcemap-codec.
69. markitdown-0.1.3
Copyright (c) markitdown authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/markitdown/.
70. @webassemblyjs/helper-numbers-1.13.2
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
71. @jridgewell/trace-mapping-0.3.29
Copyright (c) @jridgewell/trace-mapping authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/sourcemaps/tree/main/packages/trace-mapping.
72. gopkg.in/yaml.v3-3.0.1
Copyright (c) gopkg.in/yaml.v3 authors.
You may obtain the source code and detailed information about this component at https://goproxy.cn/gopkg.in/yaml.v3/@v/v3.0.1.zip.
73. json-schema-traverse-1.0.0
Copyright (c) 2017 Evgeny Poberezkin
74. github.com/spf13/viper-1.20.1
Copyright (c) github.com/spf13/viper authors.
You may obtain the source code and detailed information about this component at github.com/spf13/viper.
75. form-data-4.0.4
Copyright (c) form-data authors.
You may obtain the source code and detailed information about this component at https://github.com/form-data/form-data#readme.
76. github.com/jinzhu/now-1.1.5
Copyright (c) github.com/jinzhu/now authors.
You may obtain the source code and detailed information about this component at github.com/jinzhu/now.
77. lodash-es-4.17.21
Copyright 2012-2015 The Dojo Foundation <http: dojofoundation.org >, Copyright 2012-2016 The Dojo Foundation <http: dojofoundation.org >, Copyright 2012 John-David Dalton <http: allyoucanleet.com >, Copyright (c) 2012 Kit Cambridge., Copyright (c) 2007, Parakey Inc., Copyright JS Foundation and other contributors <https: js.foundation >, Copyright (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative, Copyright (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative, Copyright (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative, Copyright (c) 2010-2012 Jeremy Ashkenas, DocumentCloud, Copyright (c) 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative, Copyright (c) 2010-2013 Jeremy Ashkenas, DocumentCloud, Copyright (c) 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative, Copyright (c) 2010-2014 Jeremy Ashkenas, DocumentCloud, Copyright 2012-2013 The Dojo Foundation <http: dojofoundation.org >, Copyright (c) 2010-2015 Jeremy Ashkenas, DocumentCloud, Copyright 2010-2012 Mathias Bynens <http: mathiasbynens.be >, Copyright (c) 2010-2016 Jeremy Ashkenas, DocumentCloud, Copyright 2010-2013 Mathias Bynens <http: mathiasbynens.be >, Copyright 2010-2015 Mathias Bynens <http: mathiasbynens.be >, Copyright (c) 2009-2012 Jeremy Ashkenas, DocumentCloud, Copyright 2011-2012 John-David Dalton <http: allyoucanleet.com >, Copyright (c) 2009-2013 Jeremy Ashkenas, DocumentCloud, Copyright 2011-2013 John-David Dalton <http: allyoucanleet.com >, Copyright (c) 2010-2013 Brian Cavalier and John Hann, Copyright jQuery Foundation and other contributors <https: jquery.org >, Copyright (c) 2010-2011, The Dojo Foundation, Copyright OpenJS Foundation and other contributors <https: openjsf.org >
78. @webassemblyjs/helper-wasm-bytecode-1.13.2
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
79. textract-1.6.5
Copyright (c) textract authors.
You may obtain the source code and detailed information about this component at https://github.com/deanmalmgren/textract.
80. @babel/helper-string-parser-7.27.1
Copyright (c) 2014-present Sebastian McKenzie and other contributors
81. @webassemblyjs/utf8-1.13.2
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
82. birpc-2.5.0
Copyright (c) birpc authors.
You may obtain the source code and detailed information about this component at https://github.com/antfu/birpc#readme.
83. typing-inspection-0.4.2
Copyright (c) typing-inspection authors.
You may obtain the source code and detailed information about this component at https://github.com/pydantic/typing-inspection.
84. tapable-2.2.2
Copyright (c) tapable authors.
You may obtain the source code and detailed information about this component at https://github.com/webpack/tapable.
85. gopd-1.2.0
Copyright (c) 2022 Jordan Harband
86. devtools-api-6.6.4
Copyright (c) devtools-api authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/devtools#readme.
87. annotated-types-0.7.0
Copyright (c) 2022 the contributors
88. @webassemblyjs/ast-1.14.1
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
89. hasown-2.0.2
Copyright (c) 2014 Radu Brehar
90. safe-buffer-5.2.1
Copyright (c) Feross Aboukhadijeh, Copyright (C) [Feross Aboukhadijeh](http: feross.org)
91. darwin-arm64-1.3.0
Copyright (c) darwin-arm64 authors.
You may obtain the source code and detailed information about this component at https://github.com/cloudcannon/pagefind#readme.
92. helper-api-error-1.13.2
Copyright (c) helper-api-error authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
93. github.com/panjf2000/ants-2.11.2
Copyright (c) github.com/panjf2000/ants authors.
You may obtain the source code and detailed information about this component at github.com/panjf2000/ants.
94. superjson-2.2.2
Copyright (c) superjson authors.
You may obtain the source code and detailed information about this component at https://github.com/blitz-js/superjson#readme.
95. github.com/mattn/go-isatty-0.0.20
Copyright (c) github.com/mattn/go-isatty authors.
You may obtain the source code and detailed information about this component at github.com/mattn/go-isatty.
96. @vue/compiler-dom-3.5.17
Copyright (c) @vue/compiler-dom authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme.
97. estree-walker-2.0.2
Copyright (c) estree-walker authors.
You may obtain the source code and detailed information about this component at https://github.com/Rich-Harris/estree-walker#readme.
98. ajv-8.17.1
Copyright (c) 2015-2021 Evgeny Poberezkin
99. mime-types-2.1.35
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>, Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.com>
100. setuptools-80.9.0
(c) 2014 YOOtheme MIT License , Copyright (C) 2016 Jason R Coombs <jaraco@jaraco.com>, Copyright (c) 2010 - 2016 jsPlumb (hello@jsplumbtoolkit.com)
101. reactivity-3.5.17
Copyright (c) reactivity authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/reactivity#readme.
102. @types/tinycolor2-1.4.6
Copyright (c) @types/tinycolor2 authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/tinycolor2.
103. commander-2.20.3
Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
104. utf8-1.13.2
Copyright (c) utf8 authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
105. json-schema-7.0.15
Copyright (c) json-schema authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema.
106. @vue/compiler-sfc-3.5.17
Copyright (c) @vue/compiler-sfc authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme.
107. schema-utils-4.3.2
Copyright JS Foundation and other contributors
108. github.com/subosito/gotenv-1.6.0
Copyright (c) github.com/subosito/gotenv authors.
You may obtain the source code and detailed information about this component at github.com/subosito/gotenv.
109. es-define-property-1.0.1
Copyright (c) es-define-property authors.
You may obtain the source code and detailed information about this component at https://github.com/ljharb/es-define-property#readme.
110. windows-x64-1.3.0
Copyright (c) windows-x64 authors.
You may obtain the source code and detailed information about this component at https://github.com/cloudcannon/pagefind#readme.
111. referencing-0.37.0
Copyright (c) referencing authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/referencing/.
112. source-map-0.3.10
Copyright (c) source-map authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/sourcemaps/tree/main/packages/source-map.
113. github.com/chromedp/sysutil-1.1.0
Copyright (c) github.com/chromedp/sysutil authors.
You may obtain the source code and detailed information about this component at github.com/chromedp/sysutil.
114. github.com/chromedp/chromedp-0.14.2
Copyright (c) github.com/chromedp/chromedp authors.
You may obtain the source code and detailed information about this component at github.com/chromedp/chromedp.
115. docreader-1.0
Copyright (c) docreader authors.
You may obtain the source code and detailed information about this component at https://github.com/CBWhiz/docreader.
116. estree-1.0.8
Copyright (c) estree authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.
117. darwin-x64-1.3.0
Copyright (c) darwin-x64 authors.
You may obtain the source code and detailed information about this component at https://github.com/cloudcannon/pagefind#readme.
118. @jridgewell/source-map-0.3.10
Copyright (c) @jridgewell/source-map authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/sourcemaps/tree/main/packages/source-map.
119. @types/lodash-es-4.17.12
Copyright (c) Microsoft Corporation. All rights reserved.
120. @microsoft/fetch-event-source-2.0.1
Copyright (c) @microsoft/fetch-event-source authors.
You may obtain the source code and detailed information about this component at https://www.npmjs.com/package/@microsoft/fetch-event-source.
121. has-symbols-1.1.0
Copyright (c) 2016 Jordan Harband
122. server-renderer-3.5.17
Copyright (c) server-renderer authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/server-renderer#readme.
123. @vue/server-renderer-3.5.17
Copyright (c) @vue/server-renderer authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/server-renderer#readme.
124. vue-3.5.17
Copyright (c) vue authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/vue#readme.
125. @types/papaparse-5.5.0
Copyright (c) @types/papaparse authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/papaparse.
126. function-bind-1.1.2
Copyright (c) 2013 Raynos.
127. axios-1.13.2
Copyright (c) axios authors.
You may obtain the source code and detailed information about this component at https://axios-http.com.
128. @webassemblyjs/wasm-gen-1.14.1
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
129. gorm.io/gorm-1.25.12
Copyright (c) gorm.io/gorm authors.
You may obtain the source code and detailed information about this component at gorm.io/gorm.
130. @pagefind/windows-x64-1.3.0
Copyright (c) @pagefind/windows-x64 authors.
You may obtain the source code and detailed information about this component at https://github.com/pagefind/pagefind#readme.
131. github.com/lib/pq-1.10.9
Copyright (c) github.com/lib/pq authors.
You may obtain the source code and detailed information about this component at github.com/lib/pq.
132. github.com/jackc/puddle-2.2.2
Copyright (c) github.com/jackc/puddle authors.
You may obtain the source code and detailed information about this component at github.com/jackc/puddle.
133. mime-db-1.52.0
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>, Copyright (c) 2015-2022 Douglas Christopher Wilson <doug@somethingdoug.com>
134. github.com/robfig/cron-3.0.1
Copyright (c) github.com/robfig/cron authors.
You may obtain the source code and detailed information about this component at github.com/robfig/cron.
135. buffer-from-1.1.2
Copyright (c) 2016, 2018 Linus Unneb ck
136. json-parse-even-better-errors-2.3.1
Copyright 2017 Kat March n, Copyright 2017 Kat March5.n
137. @types/eslint-scope-3.7.7
Copyright (c) Microsoft Corporation.
138. randombytes-2.1.0
Copyright (c) 2017 crypto-browserify
139. runtime-7.27.6
Copyright (c) runtime authors.
You may obtain the source code and detailed information about this component at https://babel.dev/docs/en/next/babel-runtime.
140. github.com/buger/jsonparser-1.1.1
Copyright (c) github.com/buger/jsonparser authors.
You may obtain the source code and detailed information about this component at github.com/buger/jsonparser.
141. marked-5.1.2
Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License), Copyright (c) 2018+, MarkedJS (https: github.com markedjs ), Copyright 2004, John Gruber, Copyright (c) 2011, Christopher Jeffrey (http: epsilon-not.net ), Copyright (c) 2011-2012, Christopher Jeffrey. (MIT License), Copyright (c) 2011-2013, Christopher Jeffrey. (MIT License), Copyright (c) 2011-2022, Christopher Jeffrey. (MIT License), Copyright (c) 2011-2014, Christopher Jeffrey. (MIT License), Copyright (c) 2011-2013, Christopher Jeffrey (https: github.com chjj ), Copyright (c) 2011-2014, Christopher Jeffrey (https: github.com chjj )
142. @vue/devtools-api-6.6.4
Copyright (c) @vue/devtools-api authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/devtools#readme.
143. github.com/jinzhu/inflection-1.0.0
Copyright (c) github.com/jinzhu/inflection authors.
You may obtain the source code and detailed information about this component at github.com/jinzhu/inflection.
144. dunder-proto-1.0.1
Copyright (c) dunder-proto authors.
You may obtain the source code and detailed information about this component at https://github.com/es-shims/dunder-proto#readme.
145. get-intrinsic-1.3.0
Copyright (c) 2020 Jordan Harband
146. is-what-4.1.16
Copyright (c) 2018 Luca Ban - Mesqueeb, Copyright (c) 2018 Luca Ban - Mesqueeb Productions
147. message-compiler-11.1.12
Copyright (c) message-compiler authors.
You may obtain the source code and detailed information about this component at https://github.com/intlify/vue-i18n/tree/master/packages/message-compiler#readme.
148. helper-string-parser-7.27.1
Copyright (c) helper-string-parser authors.
You may obtain the source code and detailed information about this component at https://babel.dev/docs/en/next/babel-helper-string-parser.
149. github.com/spf13/cast-1.10.0
Copyright (c) github.com/spf13/cast authors.
You may obtain the source code and detailed information about this component at github.com/spf13/cast.
150. tdesign-vue-next-1.17.2
Copyright (c) tdesign-vue-next authors.
You may obtain the source code and detailed information about this component at https://github.com/Tencent/tdesign-vue-next/blob/develop/README.md.
151. github.com/clbanning/mxj-1.8.4
Copyright (c) github.com/clbanning/mxj authors.
You may obtain the source code and detailed information about this component at github.com/clbanning/mxj.
152. github.com/cespare/xxhash-2.3.0
Copyright (c) github.com/cespare/xxhash authors.
You may obtain the source code and detailed information about this component at github.com/cespare/xxhash.
153. require-from-string-2.0.2
Copyright [Vsevolod Strukchinsky](http: github.com floatdrop), Copyright (c) Vsevolod Strukchinsky <floatdrop@gmail.com> (github.com floatdrop)
154. github.com/olekukonko/tablewriter-0.0.5
Copyright (c) github.com/olekukonko/tablewriter authors.
You may obtain the source code and detailed information about this component at github.com/olekukonko/tablewriter.
155. @vue/devtools-shared-7.7.7
Copyright (c) @vue/devtools-shared authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/devtools#readme.
156. papaparse-5.5.0
Copyright (c) papaparse authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/papaparse.
157. ast-1.14.1
Copyright (c) ast authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
158. github.com/rivo/uniseg-0.4.7
Copyright (c) github.com/rivo/uniseg authors.
You may obtain the source code and detailed information about this component at github.com/rivo/uniseg.
159. runtime-dom-3.5.17
Copyright (c) runtime-dom authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme.
160. pydantic-2.12.5
Copyright (c) pydantic authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/pydantic/.
161. helper-wasm-section-1.14.1
Copyright (c) helper-wasm-section authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
162. github.com/gin-contrib/sse-1.0.0
Copyright (c) github.com/gin-contrib/sse authors.
You may obtain the source code and detailed information about this component at github.com/gin-contrib/sse.
163. gopkg.in/yaml-3.0.1
Copyright (c) gopkg.in/yaml authors.
You may obtain the source code and detailed information about this component at gopkg.in/yaml.v3.
164. github.com/mattn/go-runewidth-0.0.15
Copyright (c) github.com/mattn/go-runewidth authors.
You may obtain the source code and detailed information about this component at github.com/mattn/go-runewidth.
165. @types/trusted-types-2.0.7
Copyright (c) @types/trusted-types authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/trusted-types.
166. perfect-debounce-1.0.0
Copyright (c) perfect-debounce authors.
You may obtain the source code and detailed information about this component at https://github.com/unjs/perfect-debounce#readme.
167. webpack-sources-3.3.3
Copyright (c) webpack-sources authors.
You may obtain the source code and detailed information about this component at https://github.com/webpack/webpack-sources#readme.
168. @babel/types-7.28.1
Copyright (c) @babel/types authors.
You may obtain the source code and detailed information about this component at https://babel.dev/docs/en/next/babel-types.
169. @intlify/message-compiler-11.1.12
Copyright (c) @intlify/message-compiler authors.
You may obtain the source code and detailed information about this component at https://github.com/intlify/vue-i18n/tree/master/packages/message-compiler#readme.
170. github.com/tiendc/go-deepcopy-1.7.1
Copyright (c) github.com/tiendc/go-deepcopy authors.
You may obtain the source code and detailed information about this component at github.com/tiendc/go-deepcopy.
171. @vue/devtools-kit-7.7.7
Copyright (c) @vue/devtools-kit authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/devtools#readme.
172. pydantic_core-2.41.5
Copyright (c) pydantic_core authors.
You may obtain the source code and detailed information about this component at https://github.com/pydantic/pydantic-core.
173. @vue/shared-3.5.17
Copyright (c) @vue/shared authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/shared#readme.
174. @babel/runtime-7.27.6
Copyright (c) 2014-present Sebastian McKenzie and other contributors
175. qcloud_cos-3.3.6
Copyright (c) qcloud_cos authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/qcloud_cos/.
176. @jridgewell/gen-mapping-0.3.12
Copyright (c) @jridgewell/gen-mapping authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/sourcemaps/tree/main/packages/gen-mapping.
177. lodash-4.17.20
Copyright (c) lodash authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash.
178. tinycolor2-1.4.6
Copyright (c) tinycolor2 authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/tinycolor2.
179. gorm.io/driver/postgres-1.5.11
Copyright (c) gorm.io/driver/postgres authors.
You may obtain the source code and detailed information about this component at gorm.io/driver/postgres.
180. github.com/json-iterator/go-1.1.12
Copyright (c) github.com/json-iterator/go authors.
You may obtain the source code and detailed information about this component at github.com/json-iterator/go.
181. @webassemblyjs/wasm-edit-1.14.1
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
182. @types/estree-1.0.8
Copyright (c) @types/estree authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.
183. dompurify-3.0.5
Copyright (c) dompurify authors.
You may obtain the source code and detailed information about this component at https://www.npmjs.com/package/dompurify.
184. compiler-sfc-3.5.17
Copyright (c) compiler-sfc authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme.
185. github.com/pgvector/pgvector-go-0.3.0
Copyright (c) github.com/pgvector/pgvector-go authors.
You may obtain the source code and detailed information about this component at github.com/pgvector/pgvector-go.
186. magic-string-0.30.17
Copyright (c) magic-string authors.
You may obtain the source code and detailed information about this component at https://github.com/rich-harris/magic-string#readme.
187. chrome-trace-event-1.0.4
Copyright (c) 2015 Joyent Inc. All rights reserved.
188. pydantic-settings-2.12.0
Copyright (c) pydantic-settings authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/pydantic-settings/.
189. gen-mapping-0.3.12
Copyright (c) gen-mapping authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/sourcemaps/tree/main/packages/gen-mapping.
190. is-what-3.14.1
Copyright (c) 2018 Luca Ban - Mesqueeb
191. @vue/reactivity-3.5.17
Copyright (c) @vue/reactivity authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/reactivity#readme.
192. es-module-lexer-1.7.0
Copyright (c) es-module-lexer authors.
You may obtain the source code and detailed information about this component at https://github.com/guybedford/es-module-lexer#readme.
193. github.com/mailru/easyjson-0.9.0
Copyright (c) github.com/mailru/easyjson authors.
You may obtain the source code and detailed information about this component at github.com/mailru/easyjson.
194. es-object-atoms-1.1.1
Copyright (c) es-object-atoms authors.
You may obtain the source code and detailed information about this component at https://github.com/ljharb/es-object-atoms#readme.
195. github.com/cenkalti/backoff-5.0.2
Copyright (c) github.com/cenkalti/backoff authors.
You may obtain the source code and detailed information about this component at github.com/cenkalti/backoff.
196. github.com/sagikazarmark/locafero-0.7.0
Copyright (c) github.com/sagikazarmark/locafero authors.
You may obtain the source code and detailed information about this component at github.com/sagikazarmark/locafero.
197. @webassemblyjs/wasm-opt-1.14.1
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
198. @pagefind/darwin-arm64-1.3.0
Copyright (c) @pagefind/darwin-arm64 authors.
You may obtain the source code and detailed information about this component at https://github.com/pagefind/pagefind#readme.
199. wasm-parser-1.14.1
Copyright (c) wasm-parser authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
200. @webassemblyjs/helper-buffer-1.14.1
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
201. papaparse-5.5.3
Copyright (c) 2014 Matthew Holt, Copyright (c) 2015 Matthew Holt
202. @pagefind/darwin-x64-1.3.0
Copyright (c) @pagefind/darwin-x64 authors.
You may obtain the source code and detailed information about this component at https://github.com/pagefind/pagefind#readme.
203. weknora-mcp-server-1.0.0
Copyright (c) weknora-mcp-server authors.
You may obtain the source code and detailed information about this component at https://github.com/NannaOlympicBroadcast/WeKnoraMCP.
204. github.com/ollama/ollama-0.11.4
Copyright (c) github.com/ollama/ollama authors.
You may obtain the source code and detailed information about this component at github.com/ollama/ollama.
205. github.com/golang-migrate/migrate-4.19.0
Copyright (c) github.com/golang-migrate/migrate authors.
You may obtain the source code and detailed information about this component at github.com/golang-migrate/migrate.
206. jsonschema-4.25.1
Copyright (c) jsonschema authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/jsonschema/.
207. math-intrinsics-1.1.0
Copyright (c) math-intrinsics authors.
You may obtain the source code and detailed information about this component at https://github.com/es-shims/math-intrinsics#readme.
208. fetch-event-source-2.0.1
Copyright (c) fetch-event-source authors.
You may obtain the source code and detailed information about this component at https://github.com/Azure/fetch-event-source#readme.
209. call-bind-apply-helpers-1.0.2
Copyright (c) call-bind-apply-helpers authors.
You may obtain the source code and detailed information about this component at https://github.com/ljharb/call-bind-apply-helpers#readme.
210. get-proto-1.0.1
Copyright (c) get-proto authors.
You may obtain the source code and detailed information about this component at https://github.com/ljharb/get-proto#readme.
211. github.com/stretchr/testify-1.11.1
Copyright (c) github.com/stretchr/testify authors.
You may obtain the source code and detailed information about this component at github.com/stretchr/testify.
212. @types/sortablejs-1.15.8
Copyright (c) @types/sortablejs authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/sortablejs.
213. github.com/gabriel-vasile/mimetype-1.4.8
Copyright (c) github.com/gabriel-vasile/mimetype authors.
You may obtain the source code and detailed information about this component at github.com/gabriel-vasile/mimetype.
214. github.com/jackc/pgservicefile-0.0.0-20240606120523-5a60cdf6a761
Copyright (c) github.com/jackc/pgservicefile authors.
You may obtain the source code and detailed information about this component at github.com/jackc/pgservicefile.
215. github.com/ugorji/go/codec-1.2.12
Copyright (c) github.com/ugorji/go/codec authors.
You may obtain the source code and detailed information about this component at github.com/ugorji/go/codec.
216. webpack-5.100.1
Copyright (c) webpack authors.
You may obtain the source code and detailed information about this component at https://github.com/webpack/webpack.
217. github.com/chromedp/cdproto-0.0.0-20250724212937-08a3db8b4327
Copyright (c) github.com/chromedp/cdproto authors.
You may obtain the source code and detailed information about this component at github.com/chromedp/cdproto.
218. compiler-dom-3.5.17
Copyright (c) compiler-dom authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme.
219. compiler-core-3.5.17
Copyright (c) compiler-core authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/compiler-core#readme.
220. github.com/mitchellh/mapstructure-1.4.3
Copyright (c) github.com/mitchellh/mapstructure authors.
You may obtain the source code and detailed information about this component at github.com/mitchellh/mapstructure.
221. nanoid-3.3.11
Copyright 2017 Andrey Sitnik <andrey@sitnik.ru>
222. @types/validator-13.15.2
Copyright (c) @types/validator authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/validator.
223. floating-point-hex-parser-1.13.2
Copyright (c) floating-point-hex-parser authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
224. delayed-stream-1.0.0
Copyright (c) 2011 Debuggable Limited <felix@debuggable.com>
225. helper-wasm-bytecode-1.13.2
Copyright (c) helper-wasm-bytecode authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
226. github.com/mozillazg/go-httpheader-0.2.1
Copyright (c) github.com/mozillazg/go-httpheader authors.
You may obtain the source code and detailed information about this component at github.com/mozillazg/go-httpheader.
227. @webassemblyjs/helper-api-error-1.13.2
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
228. update-browserslist-db-1.1.3
Copyright 2022 Andrey Sitnik <andrey@sitnik.ru> and other contributors, Copyright 2014 Andrey Sitnik <andrey@sitnik.ru>
229. validator-13.15.23
Copyright (c) validator authors.
You may obtain the source code and detailed information about this component at https://github.com/jfstn/Validator#readme.
230. wasm-edit-1.14.1
Copyright (c) wasm-edit authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
231. dayjs-1.11.10
Copyright (c) 2018-PRESENT, iamkun
232. proxy-from-env-1.1.0
Copyright (C) 2016-2018 Rob Wu <rob@robwu.nl>
233. github.com/jackc/pgpassfile-1.0.0
Copyright (c) github.com/jackc/pgpassfile authors.
You may obtain the source code and detailed information about this component at github.com/jackc/pgpassfile.
234. tdesign-icons-vue-next-0.4.1
Copyright (c) tdesign-icons-vue-next authors.
You may obtain the source code and detailed information about this component at https://github.com/Tencent/tdesign-icons/blob/develop/README.md.
235. @types/eslint-9.6.1
Copyright (c) Microsoft Corporation. All rights reserved.
236. sourcemap-codec-1.5.4
Copyright (c) sourcemap-codec authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/sourcemaps/tree/main/packages/sourcemap-codec.
237. loader-runner-4.3.0
Copyright (c) Tobias Koppers @sokra
238. github.com/jackc/pgx-5.7.2
Copyright (c) github.com/jackc/pgx authors.
You may obtain the source code and detailed information about this component at github.com/jackc/pgx.
239. charset-normalizer-3.4.4
Copyright (c) charset-normalizer authors.
You may obtain the source code and detailed information about this component at https://github.com/Ousret/charset_normalizer.
240. @webassemblyjs/wasm-parser-1.14.1
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
241. github.com/gin-gonic/gin-1.10.0
Copyright (c) github.com/gin-gonic/gin authors.
You may obtain the source code and detailed information about this component at github.com/gin-gonic/gin.
242. acorn-import-phases-1.0.4
Copyright (c) acorn-import-phases authors.
You may obtain the source code and detailed information about this component at https://github.com/nicolo-ribaudo/acorn-import-phases#readme.
243. postcss-8.5.6
Copyright (c) postcss authors.
You may obtain the source code and detailed information about this component at https://postcss.org/.
244. @types/lodash-4.17.20
Copyright (c) @types/lodash authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash.
245. github.com/sirupsen/logrus-1.9.3
Copyright (c) github.com/sirupsen/logrus authors.
You may obtain the source code and detailed information about this component at github.com/sirupsen/logrus.
246. @pagefind/linux-x64-1.3.0
Copyright (c) @pagefind/linux-x64 authors.
You may obtain the source code and detailed information about this component at https://github.com/pagefind/pagefind#readme.
247. github.com/go-playground/locales-0.14.1
Copyright (c) github.com/go-playground/locales authors.
You may obtain the source code and detailed information about this component at github.com/go-playground/locales.
248. github.com/andybalholm/brotli-1.1.0
Copyright (c) github.com/andybalholm/brotli authors.
You may obtain the source code and detailed information about this component at github.com/andybalholm/brotli.
249. node-releases-2.0.19
Copyright (c) 2017 Sergey Rubanov (https: github.com chicoxyzzy)
250. neo-async-2.6.2
Copyright (c) 2014-2018 Suguru Motegi
251. eslint-9.6.1
Copyright (c) eslint authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/eslint.
252. github.com/dgryski/go-rendezvous-0.0.0-20200823014737-9f7001d12a5f
Copyright (c) github.com/dgryski/go-rendezvous authors.
You may obtain the source code and detailed information about this component at github.com/dgryski/go-rendezvous.
253. jest-worker-27.5.1
Copyright (c) Facebook, Inc. and its affiliates.
254. attrs-25.4.0
Copyright (c) attrs authors.
You may obtain the source code and detailed information about this component at https://pypi.org/project/attrs/.
255. helper-buffer-1.14.1
Copyright (c) helper-buffer authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
256. @types/json-schema-7.0.15
Copyright (c) Microsoft Corporation.
257. @jridgewell/resolve-uri-3.1.2
Copyright 2019 Justin Ridgewell <jridgewell@google.com>
258. fast-deep-equal-3.1.3
Copyright (c) 2017 Evgeny Poberezkin
259. shared-11.1.12
Copyright (c) shared authors.
You may obtain the source code and detailed information about this component at https://github.com/intlify/vue-i18n/tree/master/packages/shared#readme.
260. has-tostringtag-1.0.2
Copyright (c) 2021 Inspect JS
261. github.com/klauspost/cpuid-2.2.10
Copyright (c) github.com/klauspost/cpuid authors.
You may obtain the source code and detailed information about this component at github.com/klauspost/cpuid.
262. ollama-0.6.1
Copyright (c) ollama authors.
You may obtain the source code and detailed information about this component at https://ollama.com.
263. helper-numbers-1.13.2
Copyright (c) helper-numbers authors.
You may obtain the source code and detailed information about this component at https://github.com/xtuc/webassemblyjs#readme.
264. github.com/gobwas/ws-1.4.0
Copyright (c) github.com/gobwas/ws authors.
You may obtain the source code and detailed information about this component at github.com/gobwas/ws.
265. @webassemblyjs/floating-point-hex-parser-1.13.2
Copyright (c) 2017 Mauro Bringolf
266. shared-3.5.17
Copyright (c) shared authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/shared#readme.
267. copy-anything-3.0.5
Copyright (c) 2018 Luca Ban
268. github.com/gobwas/pool-0.2.1
Copyright (c) github.com/gobwas/pool authors.
You may obtain the source code and detailed information about this component at github.com/gobwas/pool.
269. trace-mapping-0.3.29
Copyright (c) trace-mapping authors.
You may obtain the source code and detailed information about this component at https://github.com/jridgewell/sourcemaps/tree/main/packages/trace-mapping.
270. @babel/helper-validator-identifier-7.27.1
Copyright (c) 2014-present Sebastian McKenzie and other contributors
271. github.com/rs/xid-1.6.0
Copyright (c) github.com/rs/xid authors.
You may obtain the source code and detailed information about this component at github.com/rs/xid.
272. helper-validator-identifier-7.27.1
Copyright (c) helper-validator-identifier authors.
You may obtain the source code and detailed information about this component at https://www.npmjs.com/package/helper-validator-identifier.
273. urllib3-2.5.0
Copyright (c) 2008-2020 Andrey Petrov and contributors (see CONTRIBUTORS.txt)
274. devtools-kit-7.7.7
Copyright (c) devtools-kit authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/devtools#readme.
275. compiler-ssr-3.5.17
Copyright (c) compiler-ssr authors.
You may obtain the source code and detailed information about this component at https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme.
276. rfdc-1.4.1
Copyright 2019 David Mark Clements <david.mark.clements@gmail.com>
277. enhanced-resolve-5.18.2
Copyright (c) enhanced-resolve authors.
You may obtain the source code and detailed information about this component at http://github.com/webpack/enhanced-resolve.
278. github.com/hibiken/asynq-0.25.1
Copyright (c) github.com/hibiken/asynq authors.
You may obtain the source code and detailed information about this component at github.com/hibiken/asynq.
279. mitt-3.0.1
Copyright (c) 2021 Jason Miller, Copyright (c) 2017 Jason Miller, Copyright [Jason Miller](https: jasonformat.com )
280. follow-redirects-1.15.9
Copyright 2017 Olivier Lalonde <olalonde@gmail.com>, James Talmage <james@talmage.io>, Ruben Verborgh
281. csstype-3.1.3
Copyright (c) 2017-2018 Fredrik Nicol
282. github.com/leodido/go-urn-1.4.0
Copyright (c) github.com/leodido/go-urn authors.
You may obtain the source code and detailed information about this component at github.com/leodido/go-urn.
283. @webassemblyjs/ieee754-1.13.2
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
284. github.com/klauspost/compress-1.18.0
Copyright (c) github.com/klauspost/compress authors.
You may obtain the source code and detailed information about this component at github.com/klauspost/compress.
285. @webassemblyjs/wast-printer-1.14.1
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
286. es-errors-1.3.0
Copyright (c) es-errors authors.
You may obtain the source code and detailed information about this component at https://github.com/ljharb/es-errors#readme.
287. github.com/tencentyun/cos-go-sdk-v5-0.7.65
Copyright (c) github.com/tencentyun/cos-go-sdk-v5 authors.
You may obtain the source code and detailed information about this component at github.com/tencentyun/cos-go-sdk-v5.
288. @types/dompurify-3.0.5
Copyright (c) @types/dompurify authors.
You may obtain the source code and detailed information about this component at https://www.npmjs.com/package/@types/dompurify.
289. tinycolor2-1.6.0
Copyright (c), Brian Grinstead, http: briangrinstead.com, Copyright (c) 2018 Foo Studio <developer@foostudio.mx>
290. browserslist-4.25.1
Copyright (c) browserslist authors.
You may obtain the source code and detailed information about this component at https://github.com/browserslist/browserslist#readme.
291. validator-13.15.2
Copyright (c) validator authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/validator.
292. github.com/go-playground/validator-10.26.0
Copyright (c) github.com/go-playground/validator authors.
You may obtain the source code and detailed information about this component at github.com/go-playground/validator.
293. pagefind-1.3.0
Copyright (c) pagefind authors.
You may obtain the source code and detailed information about this component at https://github.com/CloudCannon/pagefind#readme.
294. github.com/golang-jwt/jwt-5.3.0
Copyright (c) github.com/golang-jwt/jwt authors.
You may obtain the source code and detailed information about this component at github.com/golang-jwt/jwt.
295. PyJWT-2.10.1
Copyright (c) PyJWT authors.
You may obtain the source code and detailed information about this component at https://github.com/jpadilla/pyjwt.
296. undici-types-6.21.0
Copyright (c) undici-types authors.
You may obtain the source code and detailed information about this component at https://undici.nodejs.org.
297. core-2.11.8
Copyright (c) core authors.
You may obtain the source code and detailed information about this component at https://www.npmjs.com/package/core.
298. github.com/go-viper/mapstructure-2.2.1
Copyright (c) github.com/go-viper/mapstructure authors.
You may obtain the source code and detailed information about this component at github.com/go-viper/mapstructure.
299. @webassemblyjs/helper-wasm-section-1.14.1
Copyright (c) 2018 Sven Sauleau <sven@sauleau.com>
300. eslint-scope-3.7.7
Copyright (c) eslint-scope authors.
You may obtain the source code and detailed information about this component at https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/eslint-scope.
Terms of the mit:
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Open Source Software Licensed under the mpl-2.0:
--------------------------------------------------------------------
1. certifi-2023.7.22
Copyright (c) certifi authors.
You may obtain the source code and detailed information about this component at https://github.com/certifi/python-certifi.
2. github.com/hashicorp/errwrap-1.1.0
Copyright (c) github.com/hashicorp/errwrap authors.
You may obtain the source code and detailed information about this component at github.com/hashicorp/errwrap.
3. github.com/hashicorp/go-multierror-1.1.1
Copyright (c) github.com/hashicorp/go-multierror authors.
You may obtain the source code and detailed information about this component at github.com/hashicorp/go-multierror.
4. dompurify-3.2.6
Copyright 2015 Mario Heiderich, Copyright 2023 Dr.-Ing. Mario Heiderich, Cure53
Terms of the mpl-2.0:
Mozilla Public License Version 2.0
==================================
1. Definitions
--------------
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
1.5. "Incompatible With Secondary Licenses"
means
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
1.10. "Modifications"
means any of the following:
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
(b) any new file in Source Code Form that contains any Covered
Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
2. License Grants and Conditions
--------------------------------
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
(a) for any code that a Contributor has removed from Covered Software;
or
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
3. Responsibilities
-------------------
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
5. Termination
--------------
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
************************************************************************
* *
* 6. Disclaimer of Warranty *
* ------------------------- *
* *
* Covered Software is provided under this License on an "as is" *
* basis, without warranty of any kind, either expressed, implied, or *
* statutory, including, without limitation, warranties that the *
* Covered Software is free of defects, merchantable, fit for a *
* particular purpose or non-infringing. The entire risk as to the *
* quality and performance of the Covered Software is with You. *
* Should any Covered Software prove defective in any respect, You *
* (not any Contributor) assume the cost of any necessary servicing, *
* repair, or correction. This disclaimer of warranty constitutes an *
* essential part of this License. No use of any Covered Software is *
* authorized under this License except under this disclaimer. *
* *
************************************************************************
************************************************************************
* *
* 7. Limitation of Liability *
* -------------------------- *
* *
* Under no circumstances and under no legal theory, whether tort *
* (including negligence), contract, or otherwise, shall any *
* Contributor, or anyone who distributes Covered Software as *
* permitted above, be liable to You for any direct, indirect, *
* special, incidental, or consequential damages of any character *
* including, without limitation, damages for lost profits, loss of *
* goodwill, work stoppage, computer failure or malfunction, or any *
* and all other commercial damages or losses, even if such party *
* shall have been informed of the possibility of such damages. This *
* limitation of liability shall not apply to liability for death or *
* personal injury resulting from such party's negligence to the *
* extent applicable law prohibits such limitation. Some *
* jurisdictions do not allow the exclusion or limitation of *
* incidental or consequential damages, so this exclusion and *
* limitation may not apply to You. *
* *
************************************************************************
8. Litigation
-------------
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
9. Miscellaneous
----------------
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a con
gitextract_4npghok9/ ├── .env.example ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── Makefile ├── README.md ├── README_CN.md ├── README_JA.md ├── README_KO.md ├── SECURITY.md ├── VERSION ├── client/ │ ├── README.md │ ├── README_EN.md │ ├── agent.go │ ├── agent_manage.go │ ├── chunk.go │ ├── client.go │ ├── evaluation.go │ ├── example.go │ ├── faq.go │ ├── go.mod │ ├── go.sum │ ├── initialization.go │ ├── knowledge.go │ ├── knowledgebase.go │ ├── mcp_service.go │ ├── message.go │ ├── model.go │ ├── organization.go │ ├── session.go │ ├── skill.go │ ├── system.go │ ├── tag.go │ ├── tenant.go │ └── web_search.go ├── cmd/ │ └── download/ │ └── duckdb/ │ └── duckdb.go ├── config/ │ ├── builtin_agents.yaml │ ├── config.yaml │ └── prompt_templates/ │ ├── agent_system_prompt.yaml │ ├── context_template.yaml │ ├── fallback.yaml │ ├── generate_questions.yaml │ ├── generate_session_title.yaml │ ├── generate_summary.yaml │ ├── graph_extraction.yaml │ ├── keywords_extraction.yaml │ ├── rewrite.yaml │ └── system_prompt.yaml ├── dataset/ │ ├── README │ ├── README_zh.md │ ├── qa_dataset.py │ └── samples/ │ ├── answers.parquet │ ├── corpus.parquet │ ├── qas.parquet │ ├── qrels.parquet │ └── queries.parquet ├── docker/ │ ├── Dockerfile.app │ ├── Dockerfile.docreader │ ├── Dockerfile.sandbox │ └── config/ │ └── supervisord.conf ├── docker-compose.dev.yml ├── docker-compose.yml ├── docreader/ │ ├── Makefile │ ├── README.md │ ├── client/ │ │ ├── client.go │ │ └── client_test.go │ ├── config.py │ ├── main.py │ ├── models/ │ │ ├── __init__.py │ │ ├── document.py │ │ └── read_config.py │ ├── ocr/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── paddle.py │ │ └── vlm.py │ ├── parser/ │ │ ├── __init__.py │ │ ├── base_parser.py │ │ ├── chain_parser.py │ │ ├── doc_parser.py │ │ ├── docx2_parser.py │ │ ├── docx_parser.py │ │ ├── excel_parser.py │ │ ├── image_parser.py │ │ ├── markdown_parser.py │ │ ├── markitdown_parser.py │ │ ├── parser.py │ │ ├── pdf_parser.py │ │ ├── registry.py │ │ ├── storage.py │ │ └── web_parser.py │ ├── proto/ │ │ ├── docreader.pb.go │ │ ├── docreader.proto │ │ ├── docreader_grpc.pb.go │ │ ├── docreader_pb2.py │ │ ├── docreader_pb2.pyi │ │ └── docreader_pb2_grpc.py │ ├── pyproject.toml │ ├── scripts/ │ │ ├── download_deps.py │ │ └── generate_proto.sh │ ├── splitter/ │ │ ├── header_hook.py │ │ └── splitter.py │ ├── testdata/ │ │ ├── test.html │ │ ├── test.md │ │ ├── test.txt │ │ └── test_download.txt │ └── utils/ │ ├── __init__.py │ ├── endecode.py │ ├── request.py │ ├── split.py │ └── tempfile.py ├── docs/ │ ├── BUILTIN_MCP_SERVICES.md │ ├── BUILTIN_MODELS.md │ ├── IM集成开发文档.md │ ├── KnowledgeGraph.md │ ├── MCP功能使用说明.md │ ├── QA.md │ ├── ROADMAP.md │ ├── WeKnora.md │ ├── agent-skills.md │ ├── api/ │ │ ├── README.md │ │ ├── agent.md │ │ ├── chat.md │ │ ├── chunk.md │ │ ├── evaluation.md │ │ ├── faq.md │ │ ├── initialization.md │ │ ├── knowledge-base.md │ │ ├── knowledge-search.md │ │ ├── knowledge.md │ │ ├── mcp-service.md │ │ ├── message.md │ │ ├── model.md │ │ ├── organization.md │ │ ├── session.md │ │ ├── skill.md │ │ ├── system.md │ │ ├── tag.md │ │ ├── tenant.md │ │ └── web-search.md │ ├── docs.go │ ├── swagger.json │ ├── swagger.yaml │ ├── 使用其他向量数据库.md │ ├── 共享空间说明.md │ ├── 开发指南.md │ ├── 开启知识图谱功能.md │ └── 快速开发模式说明.md ├── examples/ │ └── skills/ │ ├── README.md │ └── pdf-processing/ │ ├── FORMS.md │ ├── SKILL.md │ └── scripts/ │ ├── analyze_form.py │ └── extract_text.py ├── frontend/ │ ├── .gitignore │ ├── Dockerfile │ ├── docker-entrypoint.sh │ ├── env.d.ts │ ├── index.html │ ├── nginx.conf │ ├── package.json │ ├── packages/ │ │ └── xlsx-0.20.2.tgz │ ├── public/ │ │ └── config.js │ ├── src/ │ │ ├── App.vue │ │ ├── api/ │ │ │ ├── agent/ │ │ │ │ └── index.ts │ │ │ ├── auth/ │ │ │ │ └── index.ts │ │ │ ├── chat/ │ │ │ │ ├── index.ts │ │ │ │ └── streame.ts │ │ │ ├── chat-history.ts │ │ │ ├── initialization/ │ │ │ │ └── index.ts │ │ │ ├── knowledge-base/ │ │ │ │ └── index.ts │ │ │ ├── mcp-service.ts │ │ │ ├── model/ │ │ │ │ └── index.ts │ │ │ ├── organization/ │ │ │ │ └── index.ts │ │ │ ├── retrieval.ts │ │ │ ├── skill/ │ │ │ │ └── index.ts │ │ │ ├── system/ │ │ │ │ └── index.ts │ │ │ ├── tenant/ │ │ │ │ └── index.ts │ │ │ └── web-search.ts │ │ ├── assets/ │ │ │ ├── dropdown-menu.less │ │ │ ├── fonts.css │ │ │ └── theme/ │ │ │ └── theme.css │ │ ├── components/ │ │ │ ├── AgentAvatar.vue │ │ │ ├── AgentSelector.vue │ │ │ ├── AgentShareSettings.vue │ │ │ ├── FAQTagTooltip.vue │ │ │ ├── IMChannelPanel.vue │ │ │ ├── Input-field.vue │ │ │ ├── KnowledgeBaseSelector.vue │ │ │ ├── ListSpaceSidebar.vue │ │ │ ├── MentionSelector.vue │ │ │ ├── ModelEditorDialog.vue │ │ │ ├── ModelSelector.vue │ │ │ ├── PromptTemplateSelector.vue │ │ │ ├── ShareKnowledgeBaseDialog.vue │ │ │ ├── SpaceAvatar.vue │ │ │ ├── TenantSelector.vue │ │ │ ├── UserMenu.vue │ │ │ ├── css/ │ │ │ │ ├── chat-message-shared.less │ │ │ │ └── markdown.less │ │ │ ├── doc-content.vue │ │ │ ├── document-preview.vue │ │ │ ├── empty-knowledge.vue │ │ │ ├── manual-knowledge-editor.vue │ │ │ ├── menu.vue │ │ │ ├── picture-preview.vue │ │ │ └── upload-mask.vue │ │ ├── composables/ │ │ │ └── useTheme.ts │ │ ├── hooks/ │ │ │ ├── useKnowledgeBase.ts │ │ │ └── useKnowledgeBaseCreationNavigation.ts │ │ ├── i18n/ │ │ │ ├── index.ts │ │ │ └── locales/ │ │ │ ├── en-US.ts │ │ │ ├── ko-KR.ts │ │ │ ├── ru-RU.ts │ │ │ └── zh-CN.ts │ │ ├── main.ts │ │ ├── router/ │ │ │ └── index.ts │ │ ├── stores/ │ │ │ ├── auth.ts │ │ │ ├── knowledge.ts │ │ │ ├── menu.ts │ │ │ ├── organization.ts │ │ │ ├── settings.ts │ │ │ └── ui.ts │ │ ├── types/ │ │ │ └── tool-results.ts │ │ ├── utils/ │ │ │ ├── caret.ts │ │ │ ├── chatMessageShared.ts │ │ │ ├── index.ts │ │ │ ├── mermaidShared.ts │ │ │ ├── mermaidViewer.ts │ │ │ ├── request.ts │ │ │ ├── security.ts │ │ │ └── tool-icons.ts │ │ └── views/ │ │ ├── agent/ │ │ │ ├── AgentEditorModal.vue │ │ │ └── AgentList.vue │ │ ├── auth/ │ │ │ └── Login.vue │ │ ├── chat/ │ │ │ ├── components/ │ │ │ │ ├── AgentStreamDisplay.vue │ │ │ │ ├── ToolResultRenderer.vue │ │ │ │ ├── botmsg.vue │ │ │ │ ├── deepThink.vue │ │ │ │ ├── docInfo.vue │ │ │ │ ├── sendMsg.vue │ │ │ │ ├── tool-results/ │ │ │ │ │ ├── ChunkDetail.vue │ │ │ │ │ ├── ContentPopup.vue │ │ │ │ │ ├── DatabaseQuery.vue │ │ │ │ │ ├── DocumentInfo.vue │ │ │ │ │ ├── GraphQueryResults.vue │ │ │ │ │ ├── GrepResults.vue │ │ │ │ │ ├── KnowledgeBaseList.vue │ │ │ │ │ ├── PlanDisplay.vue │ │ │ │ │ ├── RelatedChunks.vue │ │ │ │ │ ├── SearchResults.vue │ │ │ │ │ ├── ThinkingDisplay.vue │ │ │ │ │ ├── WebFetchResults.vue │ │ │ │ │ ├── WebSearchResults.vue │ │ │ │ │ └── tool-results.less │ │ │ │ └── usermsg.vue │ │ │ └── index.vue │ │ ├── creatChat/ │ │ │ └── creatChat.vue │ │ ├── knowledge/ │ │ │ ├── KnowledgeBase.vue │ │ │ ├── KnowledgeBaseEditorModal.vue │ │ │ ├── KnowledgeBaseList.vue │ │ │ ├── KnowledgeSearch.vue │ │ │ ├── components/ │ │ │ │ └── FAQEntryManager.vue │ │ │ └── settings/ │ │ │ ├── GraphSettings.vue │ │ │ ├── KBAdvancedSettings.vue │ │ │ ├── KBChunkingSettings.vue │ │ │ ├── KBModelConfig.vue │ │ │ ├── KBParserSettings.vue │ │ │ ├── KBShareSettings.vue │ │ │ └── KBStorageSettings.vue │ │ ├── organization/ │ │ │ ├── JoinOrganization.vue │ │ │ ├── OrganizationEditorModal.vue │ │ │ ├── OrganizationList.vue │ │ │ └── OrganizationSettingsModal.vue │ │ ├── platform/ │ │ │ └── index.vue │ │ └── settings/ │ │ ├── AgentSettings.vue │ │ ├── ApiInfo.vue │ │ ├── ChatHistorySettings.vue │ │ ├── GeneralSettings.vue │ │ ├── McpSettings.vue │ │ ├── ModelSettings.vue │ │ ├── OllamaSettings.vue │ │ ├── ParserEngineSettings.vue │ │ ├── RetrievalSettings.vue │ │ ├── Settings.vue │ │ ├── StorageEngineSettings.vue │ │ ├── SystemInfo.vue │ │ ├── TenantInfo.vue │ │ ├── WebSearchSettings.vue │ │ └── components/ │ │ ├── McpServiceDialog.vue │ │ └── McpTestResult.vue │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── go.mod ├── go.sum ├── helm/ │ ├── Chart.yaml │ ├── README.md │ ├── templates/ │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── app.yaml │ │ ├── docreader.yaml │ │ ├── frontend.yaml │ │ ├── ingress.yaml │ │ ├── neo4j.yaml │ │ ├── postgres.yaml │ │ ├── pvc.yaml │ │ ├── redis.yaml │ │ ├── secrets.yaml │ │ └── serviceaccount.yaml │ └── values.yaml ├── internal/ │ ├── agent/ │ │ ├── const.go │ │ ├── engine.go │ │ ├── prompts.go │ │ ├── skills/ │ │ │ ├── integration_test.go │ │ │ ├── loader.go │ │ │ ├── manager.go │ │ │ ├── skill.go │ │ │ └── skills_test.go │ │ └── tools/ │ │ ├── data_analysis.go │ │ ├── data_schema.go │ │ ├── database_query.go │ │ ├── definitions.go │ │ ├── final_answer.go │ │ ├── get_document_info.go │ │ ├── grep_chunks.go │ │ ├── knowledge_search.go │ │ ├── list_knowledge_chunks.go │ │ ├── mcp_tool.go │ │ ├── query_knowledge_graph.go │ │ ├── registry.go │ │ ├── sequentialthinking.go │ │ ├── skill_execute.go │ │ ├── skill_read.go │ │ ├── todo_write.go │ │ ├── tool.go │ │ ├── web_fetch.go │ │ └── web_search.go │ ├── application/ │ │ ├── repository/ │ │ │ ├── agent_share.go │ │ │ ├── chunk.go │ │ │ ├── custom_agent.go │ │ │ ├── kbshare.go │ │ │ ├── knowledge.go │ │ │ ├── knowledgebase.go │ │ │ ├── mcp_service.go │ │ │ ├── memory/ │ │ │ │ └── neo4j/ │ │ │ │ └── repository.go │ │ │ ├── message.go │ │ │ ├── model.go │ │ │ ├── organization.go │ │ │ ├── retriever/ │ │ │ │ ├── elasticsearch/ │ │ │ │ │ ├── structs.go │ │ │ │ │ ├── v7/ │ │ │ │ │ │ └── repository.go │ │ │ │ │ └── v8/ │ │ │ │ │ └── repository.go │ │ │ │ ├── milvus/ │ │ │ │ │ ├── filter.go │ │ │ │ │ ├── repository.go │ │ │ │ │ └── structs.go │ │ │ │ ├── neo4j/ │ │ │ │ │ └── repository.go │ │ │ │ ├── postgres/ │ │ │ │ │ ├── repository.go │ │ │ │ │ └── structs.go │ │ │ │ ├── qdrant/ │ │ │ │ │ ├── repository.go │ │ │ │ │ └── structs.go │ │ │ │ ├── sqlite/ │ │ │ │ │ └── repository.go │ │ │ │ └── weaviate/ │ │ │ │ ├── repository.go │ │ │ │ └── structs.go │ │ │ ├── session.go │ │ │ ├── tag.go │ │ │ ├── tenant.go │ │ │ ├── tenant_disabled_shared_agent.go │ │ │ └── user.go │ │ └── service/ │ │ ├── agent_service.go │ │ ├── agent_share.go │ │ ├── chat_pipline/ │ │ │ ├── chat_completion.go │ │ │ ├── chat_completion_stream.go │ │ │ ├── chat_pipline.go │ │ │ ├── chat_pipline_test.go │ │ │ ├── common.go │ │ │ ├── data_analysis.go │ │ │ ├── extract_entity.go │ │ │ ├── filter_top_k.go │ │ │ ├── into_chat_message.go │ │ │ ├── load_history.go │ │ │ ├── memory.go │ │ │ ├── merge.go │ │ │ ├── merge_expand.go │ │ │ ├── merge_faq.go │ │ │ ├── merge_history.go │ │ │ ├── merge_overlap.go │ │ │ ├── query_expansion.go │ │ │ ├── rerank.go │ │ │ ├── rerank_clean_test.go │ │ │ ├── rewrite.go │ │ │ ├── search.go │ │ │ ├── search_entity.go │ │ │ ├── search_parallel.go │ │ │ ├── stream_filter.go │ │ │ └── tracing.go │ │ ├── chunk.go │ │ ├── custom_agent.go │ │ ├── dataset.go │ │ ├── evaluation.go │ │ ├── extract.go │ │ ├── file/ │ │ │ ├── cos.go │ │ │ ├── dummy.go │ │ │ ├── factory.go │ │ │ ├── local.go │ │ │ ├── minio.go │ │ │ ├── s3.go │ │ │ └── tos.go │ │ ├── graph.go │ │ ├── image_multimodal.go │ │ ├── kbshare.go │ │ ├── knowledge.go │ │ ├── knowledge_manual_test.go │ │ ├── knowledgebase.go │ │ ├── knowledgebase_search.go │ │ ├── knowledgebase_search_faq.go │ │ ├── knowledgebase_search_fusion.go │ │ ├── knowledgebase_search_results.go │ │ ├── knowledgebase_search_shared.go │ │ ├── llmcontext/ │ │ │ ├── compression_strategies.go │ │ │ ├── context_manager.go │ │ │ ├── context_manager_factory.go │ │ │ ├── memory_storage.go │ │ │ ├── redis_storage.go │ │ │ └── storage.go │ │ ├── mcp_service.go │ │ ├── memory/ │ │ │ └── service.go │ │ ├── message.go │ │ ├── metric/ │ │ │ ├── bleu.go │ │ │ ├── common.go │ │ │ ├── map.go │ │ │ ├── map_test.go │ │ │ ├── mrr.go │ │ │ ├── mrr_test.go │ │ │ ├── ndcg.go │ │ │ ├── precision.go │ │ │ ├── precision_test.go │ │ │ ├── recall.go │ │ │ ├── recall_test.go │ │ │ ├── rouge.go │ │ │ └── rouge_score.go │ │ ├── metric_hook.go │ │ ├── model.go │ │ ├── ocr_sanitizer.go │ │ ├── ocr_sanitizer_test.go │ │ ├── organization.go │ │ ├── retriever/ │ │ │ ├── composite.go │ │ │ ├── keywords_vector_hybrid_indexer.go │ │ │ └── registry.go │ │ ├── session.go │ │ ├── session_agent_qa.go │ │ ├── session_knowledge_qa.go │ │ ├── session_qa_helpers.go │ │ ├── skill_service.go │ │ ├── tag.go │ │ ├── tenant.go │ │ ├── user.go │ │ ├── web_search/ │ │ │ ├── bing.go │ │ │ ├── bing_test.go │ │ │ ├── duckduckgo.go │ │ │ ├── duckduckgo_test.go │ │ │ ├── google.go │ │ │ ├── google_test.go │ │ │ └── registry.go │ │ ├── web_search.go │ │ └── web_search_state.go │ ├── common/ │ │ └── tools.go │ ├── config/ │ │ └── config.go │ ├── container/ │ │ ├── cleanup.go │ │ └── container.go │ ├── database/ │ │ └── migration.go │ ├── errors/ │ │ ├── errors.go │ │ └── session.go │ ├── event/ │ │ ├── SUMMARY.md │ │ ├── adapter.go │ │ ├── event.go │ │ ├── event_data.go │ │ ├── example_test.go │ │ ├── global.go │ │ ├── middleware.go │ │ └── usage_example.md │ ├── handler/ │ │ ├── auth.go │ │ ├── chunk.go │ │ ├── custom_agent.go │ │ ├── evaluation.go │ │ ├── faq.go │ │ ├── im.go │ │ ├── initialization.go │ │ ├── knowledge.go │ │ ├── knowledgebase.go │ │ ├── mcp_service.go │ │ ├── message.go │ │ ├── model.go │ │ ├── organization.go │ │ ├── session/ │ │ │ ├── agent_stream_handler.go │ │ │ ├── handler.go │ │ │ ├── helpers.go │ │ │ ├── image_upload.go │ │ │ ├── qa.go │ │ │ ├── stream.go │ │ │ ├── title.go │ │ │ └── types.go │ │ ├── skill_handler.go │ │ ├── system.go │ │ ├── tag.go │ │ ├── tenant.go │ │ └── web_search.go │ ├── im/ │ │ ├── adapter.go │ │ ├── cmd_clear.go │ │ ├── cmd_help.go │ │ ├── cmd_info.go │ │ ├── cmd_search.go │ │ ├── cmd_stop.go │ │ ├── command.go │ │ ├── command_registry.go │ │ ├── feishu/ │ │ │ ├── adapter.go │ │ │ └── longconn.go │ │ ├── qaqueue.go │ │ ├── ratelimit.go │ │ ├── service.go │ │ ├── slack/ │ │ │ ├── adapter.go │ │ │ └── longconn.go │ │ ├── stream_test.go │ │ ├── types.go │ │ └── wecom/ │ │ ├── longconn.go │ │ ├── webhook_adapter.go │ │ └── ws_adapter.go │ ├── infrastructure/ │ │ ├── chunker/ │ │ │ ├── splitter.go │ │ │ └── splitter_test.go │ │ └── docparser/ │ │ ├── builtin_converter.go │ │ ├── engine_registry.go │ │ ├── grpc_parser.go │ │ ├── helpers.go │ │ ├── http_parser.go │ │ ├── image_resolver.go │ │ ├── image_resolver_test.go │ │ ├── mineru_cloud_converter.go │ │ ├── mineru_converter.go │ │ └── resolve_remote_images_test.go │ ├── logger/ │ │ └── logger.go │ ├── mcp/ │ │ ├── client.go │ │ ├── errors.go │ │ ├── manager.go │ │ └── types.go │ ├── middleware/ │ │ ├── auth.go │ │ ├── error_handler.go │ │ ├── language.go │ │ ├── logger.go │ │ ├── recovery.go │ │ └── trace.go │ ├── models/ │ │ ├── chat/ │ │ │ ├── chat.go │ │ │ ├── image_resolve.go │ │ │ ├── json_field_extractor.go │ │ │ ├── json_field_extractor_test.go │ │ │ ├── lkeap.go │ │ │ ├── nvidia.go │ │ │ ├── ollama.go │ │ │ ├── provider_chat.go │ │ │ ├── qwen.go │ │ │ ├── remote_api.go │ │ │ ├── remote_api_test.go │ │ │ └── sse_reader.go │ │ ├── embedding/ │ │ │ ├── aliyun.go │ │ │ ├── batch.go │ │ │ ├── embedder.go │ │ │ ├── jina.go │ │ │ ├── nvidia.go │ │ │ ├── ollama.go │ │ │ ├── openai.go │ │ │ └── volcengine.go │ │ ├── provider/ │ │ │ ├── aliyun.go │ │ │ ├── deepseek.go │ │ │ ├── gemini.go │ │ │ ├── generic.go │ │ │ ├── gpustack.go │ │ │ ├── hunyuan.go │ │ │ ├── jina.go │ │ │ ├── lkeap.go │ │ │ ├── longcat.go │ │ │ ├── mimo.go │ │ │ ├── minimax.go │ │ │ ├── modelscope.go │ │ │ ├── moonshot.go │ │ │ ├── nvidia.go │ │ │ ├── openai.go │ │ │ ├── openrouter.go │ │ │ ├── provider.go │ │ │ ├── provider_test.go │ │ │ ├── qianfan.go │ │ │ ├── qiniu.go │ │ │ ├── siliconflow.go │ │ │ ├── volcengine.go │ │ │ └── zhipu.go │ │ ├── rerank/ │ │ │ ├── aliyun_reranker.go │ │ │ ├── jina_reranker.go │ │ │ ├── logging.go │ │ │ ├── nvidia_reranker.go │ │ │ ├── remote_api.go │ │ │ ├── reranker.go │ │ │ ├── reranker_test.go │ │ │ └── zhipu_reranker.go │ │ ├── utils/ │ │ │ ├── ollama/ │ │ │ │ └── ollama.go │ │ │ └── slices.go │ │ └── vlm/ │ │ ├── ollama.go │ │ ├── remote_api.go │ │ └── vlm.go │ ├── router/ │ │ ├── router.go │ │ ├── sync_task.go │ │ └── task.go │ ├── runtime/ │ │ └── container.go │ ├── sandbox/ │ │ ├── docker.go │ │ ├── local.go │ │ ├── manager.go │ │ ├── sandbox.go │ │ ├── sandbox_test.go │ │ ├── validator.go │ │ └── validator_test.go │ ├── searchutil/ │ │ ├── conversion.go │ │ ├── normalize.go │ │ └── textutil.go │ ├── stream/ │ │ ├── factory.go │ │ ├── memory_manager.go │ │ └── redis_manager.go │ ├── tracing/ │ │ └── init.go │ ├── types/ │ │ ├── agent.go │ │ ├── builtin_agent_config.go │ │ ├── chat.go │ │ ├── chat_history_config.go │ │ ├── chat_manage.go │ │ ├── chunk.go │ │ ├── cleanup.go │ │ ├── const.go │ │ ├── context_helpers.go │ │ ├── custom_agent.go │ │ ├── dataset.go │ │ ├── docparser.go │ │ ├── embedding.go │ │ ├── errors.go │ │ ├── evaluation.go │ │ ├── event_bus.go │ │ ├── extract_graph.go │ │ ├── faq.go │ │ ├── faq_test.go │ │ ├── graph.go │ │ ├── interfaces/ │ │ │ ├── agent.go │ │ │ ├── chunk.go │ │ │ ├── context_manager.go │ │ │ ├── custom_agent.go │ │ │ ├── document_parser.go │ │ │ ├── evaluation.go │ │ │ ├── file.go │ │ │ ├── knowledge.go │ │ │ ├── knowledgebase.go │ │ │ ├── mcp_service.go │ │ │ ├── memory.go │ │ │ ├── message.go │ │ │ ├── model.go │ │ │ ├── organization.go │ │ │ ├── resource.go │ │ │ ├── retriever.go │ │ │ ├── retriever_graph.go │ │ │ ├── session.go │ │ │ ├── skill.go │ │ │ ├── stream_manager.go │ │ │ ├── tag.go │ │ │ ├── task_enqueuer.go │ │ │ ├── task_handler.go │ │ │ ├── tenant.go │ │ │ ├── user.go │ │ │ ├── web_search.go │ │ │ └── web_search_state.go │ │ ├── json.go │ │ ├── knowledge.go │ │ ├── knowledgebase.go │ │ ├── mcp.go │ │ ├── memory.go │ │ ├── message.go │ │ ├── model.go │ │ ├── organization.go │ │ ├── placeholder.go │ │ ├── qa_request.go │ │ ├── retrieval_config.go │ │ ├── retriever.go │ │ ├── search.go │ │ ├── session.go │ │ ├── tag.go │ │ ├── tenant.go │ │ ├── user.go │ │ └── web_search.go │ └── utils/ │ ├── crypto.go │ ├── debug.go │ ├── filesize.go │ ├── httputil.go │ ├── inject.go │ ├── inject_test.go │ ├── json.go │ ├── log_sanitize.go │ ├── security.go │ ├── security_test.go │ └── taskid.go ├── mcp-server/ │ ├── .gitignore │ ├── CHANGELOG.md │ ├── EXAMPLES.md │ ├── INSTALL.md │ ├── LICENSE │ ├── MANIFEST.in │ ├── MCP_CONFIG.md │ ├── PROJECT_SUMMARY.md │ ├── README.md │ ├── __init__.py │ ├── main.py │ ├── pyproject.toml │ ├── requirements.txt │ ├── run.py │ ├── run_server.py │ ├── setup.py │ ├── test_imports.py │ ├── test_module.py │ └── weknora_mcp_server.py ├── migrations/ │ ├── mysql/ │ │ └── 00-init-db.sql │ ├── paradedb/ │ │ ├── 00-init-db.sql │ │ └── 01-migrate-to-paradedb.sql │ ├── sqlite/ │ │ ├── 000000_init.down.sql │ │ └── 000000_init.up.sql │ └── versioned/ │ ├── 000000_init.down.sql │ ├── 000000_init.up.sql │ ├── 000001_agent.down.sql │ ├── 000001_agent.up.sql │ ├── 000002_embeddings.down.sql │ ├── 000002_embeddings.up.sql │ ├── 000003_chunk_flags.down.sql │ ├── 000003_chunk_flags.up.sql │ ├── 000004_drop_vlm_model_id.down.sql │ ├── 000004_drop_vlm_model_id.up.sql │ ├── 000005_mentioned_items.down.sql │ ├── 000005_mentioned_items.up.sql │ ├── 000006_custom_agents.down.sql │ ├── 000006_custom_agents.up.sql │ ├── 000007_embeddings_tag_id.down.sql │ ├── 000007_embeddings_tag_id.up.sql │ ├── 000008_migrate_untagged_faq.down.sql │ ├── 000008_migrate_untagged_faq.up.sql │ ├── 000009_add_last_faq_import_result.down.sql │ ├── 000009_add_last_faq_import_result.up.sql │ ├── 000010_add_seq_id.down.sql │ ├── 000010_add_seq_id.up.sql │ ├── 000011_pg_search_update.down.sql │ ├── 000011_pg_search_update.up.sql │ ├── 000012_organizations.down.sql │ ├── 000012_organizations.up.sql │ ├── 000013_engine_configs.down.sql │ ├── 000013_engine_configs.up.sql │ ├── 000014_storage_provider_config.down.sql │ ├── 000014_storage_provider_config.up.sql │ ├── 000015_add_is_fallback.down.sql │ ├── 000015_add_is_fallback.up.sql │ ├── 000016_add_kb_pinned.down.sql │ ├── 000016_add_kb_pinned.up.sql │ ├── 000017_mcp_builtin.down.sql │ ├── 000017_mcp_builtin.up.sql │ ├── 000018_extend_tenant_api_key.down.sql │ ├── 000018_extend_tenant_api_key.up.sql │ ├── 000019_add_agent_duration_ms.down.sql │ ├── 000019_add_agent_duration_ms.up.sql │ ├── 000020_add_message_knowledge_id.down.sql │ ├── 000020_add_message_knowledge_id.up.sql │ ├── 000021_im_channel.down.sql │ ├── 000021_im_channel.up.sql │ ├── 000022_message_images.down.sql │ ├── 000022_message_images.up.sql │ ├── 000023_im_channel_kb_id.down.sql │ ├── 000023_im_channel_kb_id.up.sql │ ├── 000024_im_channel_bot_identity.down.sql │ └── 000024_im_channel_bot_identity.up.sql ├── rerank_server_demo.py ├── scripts/ │ ├── build_images.sh │ ├── check-env.sh │ ├── dev.sh │ ├── docker-entrypoint.sh │ ├── get_version.sh │ ├── migrate.sh │ ├── quick-dev.sh │ └── start_all.sh ├── skills/ │ └── preloaded/ │ ├── citation-generator/ │ │ └── SKILL.md │ ├── data-processor/ │ │ ├── SKILL.md │ │ └── scripts/ │ │ ├── analyze.py │ │ ├── extract_info.py │ │ └── format_converter.py │ ├── doc-coauthoring/ │ │ └── SKILL.md │ └── document-analyzer/ │ └── SKILL.md └── test_agent_config.sh
Showing preview only (545K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5773 symbols across 499 files)
FILE: client/agent.go
type MentionedItem (line 16) | type MentionedItem struct
type AgentQARequest (line 24) | type AgentQARequest struct
type AgentResponseType (line 39) | type AgentResponseType
constant AgentResponseTypeThinking (line 42) | AgentResponseTypeThinking AgentResponseType = "thinking"
constant AgentResponseTypeToolCall (line 43) | AgentResponseTypeToolCall AgentResponseType = "tool_call"
constant AgentResponseTypeToolResult (line 44) | AgentResponseTypeToolResult AgentResponseType = "tool_result"
constant AgentResponseTypeReferences (line 45) | AgentResponseTypeReferences AgentResponseType = "references"
constant AgentResponseTypeAnswer (line 46) | AgentResponseTypeAnswer AgentResponseType = "answer"
constant AgentResponseTypeReflection (line 47) | AgentResponseTypeReflection AgentResponseType = "reflection"
constant AgentResponseTypeError (line 48) | AgentResponseTypeError AgentResponseType = "error"
type AgentStreamResponse (line 52) | type AgentStreamResponse struct
type AgentEventCallback (line 63) | type AgentEventCallback
method AgentQAStream (line 67) | func (c *Client) AgentQAStream(ctx context.Context, sessionID string, qu...
method AgentQAStreamWithRequest (line 76) | func (c *Client) AgentQAStreamWithRequest(ctx context.Context,
method processAgentSSEStream (line 103) | func (c *Client) processAgentSSEStream(reader io.Reader, callback AgentE...
type AgentSession (line 147) | type AgentSession struct
method Ask (line 161) | func (as *AgentSession) Ask(ctx context.Context, query string, callbac...
method AskWithRequest (line 166) | func (as *AgentSession) AskWithRequest(
method GetSessionID (line 175) | func (as *AgentSession) GetSessionID() string {
method NewAgentSession (line 153) | func (c *Client) NewAgentSession(sessionID string) *AgentSession {
FILE: client/agent_manage.go
type Agent (line 14) | type Agent struct
type AgentConfig (line 28) | type AgentConfig struct
type CreateAgentRequest (line 66) | type CreateAgentRequest struct
type UpdateAgentRequest (line 74) | type UpdateAgentRequest struct
type AgentResponse (line 82) | type AgentResponse struct
type AgentListResponse (line 88) | type AgentListResponse struct
type AgentPlaceholdersResponse (line 94) | type AgentPlaceholdersResponse struct
method CreateAgent (line 100) | func (c *Client) CreateAgent(ctx context.Context, request *CreateAgentRe...
method ListAgents (line 115) | func (c *Client) ListAgents(ctx context.Context) ([]Agent, error) {
method GetAgent (line 130) | func (c *Client) GetAgent(ctx context.Context, agentID string) (*Agent, ...
method UpdateAgent (line 146) | func (c *Client) UpdateAgent(ctx context.Context, agentID string, reques...
method DeleteAgent (line 162) | func (c *Client) DeleteAgent(ctx context.Context, agentID string) error {
method CopyAgent (line 178) | func (c *Client) CopyAgent(ctx context.Context, agentID string) (*Agent,...
method GetAgentPlaceholders (line 194) | func (c *Client) GetAgentPlaceholders(ctx context.Context) (map[string]j...
FILE: client/chunk.go
type Chunk (line 16) | type Chunk struct
type ChunkResponse (line 44) | type ChunkResponse struct
type ChunkListResponse (line 51) | type ChunkListResponse struct
type UpdateChunkRequest (line 61) | type UpdateChunkRequest struct
method ListKnowledgeChunks (line 83) | func (c *Client) ListKnowledgeChunks(ctx context.Context,
method UpdateChunk (line 116) | func (c *Client) UpdateChunk(ctx context.Context,
method DeleteChunk (line 142) | func (c *Client) DeleteChunk(ctx context.Context, knowledgeID string, ch...
method GetChunkByIDOnly (line 158) | func (c *Client) GetChunkByIDOnly(ctx context.Context, chunkID string) (...
method DeleteGeneratedQuestion (line 174) | func (c *Client) DeleteGeneratedQuestion(ctx context.Context, chunkID st...
method DeleteChunksByKnowledgeID (line 198) | func (c *Client) DeleteChunksByKnowledgeID(ctx context.Context, knowledg...
FILE: client/client.go
type Client (line 17) | type Client struct
method doRequest (line 57) | func (c *Client) doRequest(ctx context.Context,
type ClientOption (line 24) | type ClientOption
function WithTimeout (line 27) | func WithTimeout(timeout time.Duration) ClientOption {
function WithToken (line 34) | func WithToken(token string) ClientOption {
function NewClient (line 41) | func NewClient(baseURL string, options ...ClientOption) *Client {
function parseResponse (line 91) | func parseResponse(resp *http.Response, target interface{}) error {
FILE: client/evaluation.go
type EvaluationTask (line 15) | type EvaluationTask struct
type EvaluationResult (line 30) | type EvaluationResult struct
type EvaluationRequest (line 45) | type EvaluationRequest struct
type EvaluationTaskResponse (line 54) | type EvaluationTaskResponse struct
type EvaluationResultResponse (line 61) | type EvaluationResultResponse struct
method StartEvaluation (line 75) | func (c *Client) StartEvaluation(ctx context.Context, request *Evaluatio...
method GetEvaluationResult (line 98) | func (c *Client) GetEvaluationResult(ctx context.Context, taskID string)...
FILE: client/example.go
function ExampleUsage (line 22) | func ExampleUsage() {
function min (line 249) | func min(a, b int) int {
FILE: client/faq.go
type FAQEntry (line 14) | type FAQEntry struct
type FAQEntryPayload (line 40) | type FAQEntryPayload struct
type FAQBatchUpsertPayload (line 55) | type FAQBatchUpsertPayload struct
type FAQEntryFieldsUpdate (line 64) | type FAQEntryFieldsUpdate struct
type FAQEntryFieldsBatchRequest (line 74) | type FAQEntryFieldsBatchRequest struct
type FAQEntryTagBatchRequest (line 85) | type FAQEntryTagBatchRequest struct
type FAQDeleteRequest (line 90) | type FAQDeleteRequest struct
type FAQSearchRequest (line 95) | type FAQSearchRequest struct
type FAQEntriesPage (line 105) | type FAQEntriesPage struct
type FAQEntriesResponse (line 113) | type FAQEntriesResponse struct
type FAQUpsertResponse (line 121) | type FAQUpsertResponse struct
type FAQTaskPayload (line 129) | type FAQTaskPayload struct
type FAQSearchResponse (line 134) | type FAQSearchResponse struct
type FAQEntryResponse (line 142) | type FAQEntryResponse struct
type faqSimpleResponse (line 149) | type faqSimpleResponse struct
method ListFAQEntries (line 159) | func (c *Client) ListFAQEntries(ctx context.Context,
method UpsertFAQEntries (line 199) | func (c *Client) UpsertFAQEntries(ctx context.Context,
method CreateFAQEntry (line 219) | func (c *Client) CreateFAQEntry(ctx context.Context,
method GetFAQEntry (line 236) | func (c *Client) GetFAQEntry(ctx context.Context,
method UpdateFAQEntry (line 253) | func (c *Client) UpdateFAQEntry(ctx context.Context,
type AddSimilarQuestionsPayload (line 270) | type AddSimilarQuestionsPayload struct
method AddSimilarQuestions (line 276) | func (c *Client) AddSimilarQuestions(ctx context.Context,
method UpdateFAQEntryFieldsBatch (line 297) | func (c *Client) UpdateFAQEntryFieldsBatch(ctx context.Context,
method UpdateFAQEntryTagBatch (line 312) | func (c *Client) UpdateFAQEntryTagBatch(ctx context.Context,
method DeleteFAQEntries (line 326) | func (c *Client) DeleteFAQEntries(ctx context.Context,
method SearchFAQEntries (line 340) | func (c *Client) SearchFAQEntries(ctx context.Context,
method ExportFAQEntries (line 362) | func (c *Client) ExportFAQEntries(ctx context.Context, knowledgeBaseID s...
type FAQFailedEntry (line 380) | type FAQFailedEntry struct
type FAQSuccessEntry (line 393) | type FAQSuccessEntry struct
type FAQImportProgress (line 403) | type FAQImportProgress struct
type FAQImportProgressResponse (line 431) | type FAQImportProgressResponse struct
method GetFAQImportProgress (line 440) | func (c *Client) GetFAQImportProgress(ctx context.Context, taskID string...
type updateLastFAQImportResultDisplayStatusRequest (line 454) | type updateLastFAQImportResultDisplayStatusRequest struct
method UpdateLastFAQImportResultDisplayStatus (line 459) | func (c *Client) UpdateLastFAQImportResultDisplayStatus(ctx context.Cont...
FILE: client/initialization.go
type InitializationConfig (line 12) | type InitializationConfig struct
type OllamaModelInfo (line 20) | type OllamaModelInfo struct
type DownloadTask (line 27) | type DownloadTask struct
type ModelCheckResult (line 38) | type ModelCheckResult struct
method GetInitializationConfig (line 44) | func (c *Client) GetInitializationConfig(ctx context.Context, kbID strin...
method InitializeByKB (line 60) | func (c *Client) InitializeByKB(ctx context.Context, kbID string, config...
method UpdateKBConfig (line 69) | func (c *Client) UpdateKBConfig(ctx context.Context, kbID string, config...
method CheckOllamaStatus (line 78) | func (c *Client) CheckOllamaStatus(ctx context.Context) (bool, error) {
method ListOllamaModels (line 96) | func (c *Client) ListOllamaModels(ctx context.Context) ([]OllamaModelInf...
method CheckOllamaModels (line 112) | func (c *Client) CheckOllamaModels(ctx context.Context, models []string)...
method DownloadOllamaModel (line 129) | func (c *Client) DownloadOllamaModel(ctx context.Context, modelName stri...
method GetOllamaDownloadProgress (line 146) | func (c *Client) GetOllamaDownloadProgress(ctx context.Context, taskID s...
method ListOllamaDownloadTasks (line 162) | func (c *Client) ListOllamaDownloadTasks(ctx context.Context) ([]*Downlo...
method CheckRemoteModel (line 178) | func (c *Client) CheckRemoteModel(ctx context.Context, params map[string...
method TestEmbeddingModel (line 194) | func (c *Client) TestEmbeddingModel(ctx context.Context, params map[stri...
method CheckRerankModel (line 210) | func (c *Client) CheckRerankModel(ctx context.Context, params map[string...
method TestMultimodalFunction (line 226) | func (c *Client) TestMultimodalFunction(ctx context.Context, params map[...
method ExtractTextRelations (line 242) | func (c *Client) ExtractTextRelations(ctx context.Context, params any) (...
FILE: client/knowledge.go
type Knowledge (line 23) | type Knowledge struct
type KnowledgeResponse (line 50) | type KnowledgeResponse struct
type KnowledgeListResponse (line 58) | type KnowledgeListResponse struct
type KnowledgeBatchResponse (line 67) | type KnowledgeBatchResponse struct
type UpdateImageInfoRequest (line 74) | type UpdateImageInfoRequest struct
method CreateKnowledgeFromFile (line 91) | func (c *Client) CreateKnowledgeFromFile(ctx context.Context,
type CreateKnowledgeFromURLRequest (line 194) | type CreateKnowledgeFromURLRequest struct
method CreateKnowledgeFromURL (line 212) | func (c *Client) CreateKnowledgeFromURL(
method GetKnowledge (line 240) | func (c *Client) GetKnowledge(ctx context.Context, knowledgeID string) (...
method GetKnowledgeBatch (line 256) | func (c *Client) GetKnowledgeBatch(ctx context.Context, knowledgeIDs []s...
method ListKnowledge (line 278) | func (c *Client) ListKnowledge(ctx context.Context,
method DeleteKnowledge (line 307) | func (c *Client) DeleteKnowledge(ctx context.Context, knowledgeID string...
method DownloadKnowledgeFile (line 323) | func (c *Client) DownloadKnowledgeFile(ctx context.Context, knowledgeID ...
method UpdateKnowledge (line 353) | func (c *Client) UpdateKnowledge(ctx context.Context, knowledge *Knowled...
method ReparseKnowledge (line 389) | func (c *Client) ReparseKnowledge(ctx context.Context, knowledgeID strin...
method UpdateImageInfo (line 419) | func (c *Client) UpdateImageInfo(ctx context.Context,
type CreateManualKnowledgeRequest (line 437) | type CreateManualKnowledgeRequest struct
type UpdateManualKnowledgeRequest (line 444) | type UpdateManualKnowledgeRequest struct
type BatchUpdateKnowledgeTagsRequest (line 450) | type BatchUpdateKnowledgeTagsRequest struct
method CreateManualKnowledge (line 455) | func (c *Client) CreateManualKnowledge(ctx context.Context, knowledgeBas...
method UpdateManualKnowledge (line 471) | func (c *Client) UpdateManualKnowledge(ctx context.Context, knowledgeID ...
type FilterKnowledgeResponse (line 487) | type FilterKnowledgeResponse struct
method FilterKnowledge (line 494) | func (c *Client) FilterKnowledge(ctx context.Context, keyword string, of...
type MoveKnowledgeRequest (line 524) | type MoveKnowledgeRequest struct
type MoveKnowledgeResponse (line 532) | type MoveKnowledgeResponse struct
method MoveKnowledge (line 541) | func (c *Client) MoveKnowledge(ctx context.Context, req *MoveKnowledgeRe...
type KnowledgeMoveProgress (line 558) | type KnowledgeMoveProgress struct
method GetKnowledgeMoveProgress (line 569) | func (c *Client) GetKnowledgeMoveProgress(ctx context.Context, taskID st...
method PreviewKnowledgeFile (line 588) | func (c *Client) PreviewKnowledgeFile(ctx context.Context, knowledgeID s...
method BatchUpdateKnowledgeTags (line 595) | func (c *Client) BatchUpdateKnowledgeTags(ctx context.Context, updates m...
FILE: client/knowledgebase.go
type KnowledgeBase (line 16) | type KnowledgeBase struct
method UnmarshalJSON (line 112) | func (kb *KnowledgeBase) UnmarshalJSON(data []byte) error {
type KnowledgeBaseConfig (line 42) | type KnowledgeBaseConfig struct
type ChunkingConfig (line 49) | type ChunkingConfig struct
type FAQConfig (line 56) | type FAQConfig struct
type ImageProcessingConfig (line 62) | type ImageProcessingConfig struct
type VLMConfig (line 67) | type VLMConfig struct
type StorageProviderConfig (line 73) | type StorageProviderConfig struct
type StorageConfig (line 79) | type StorageConfig struct
type ExtractConfig (line 90) | type ExtractConfig struct
type GraphNode (line 99) | type GraphNode struct
type GraphRelation (line 104) | type GraphRelation struct
type KnowledgeBaseResponse (line 130) | type KnowledgeBaseResponse struct
type KnowledgeBaseListResponse (line 136) | type KnowledgeBaseListResponse struct
type SearchResult (line 142) | type SearchResult struct
type HybridSearchResponse (line 163) | type HybridSearchResponse struct
type CopyKnowledgeBaseRequest (line 168) | type CopyKnowledgeBaseRequest struct
type CopyKnowledgeBaseResponse (line 175) | type CopyKnowledgeBaseResponse struct
type KBCloneProgress (line 183) | type KBCloneProgress struct
method CreateKnowledgeBase (line 198) | func (c *Client) CreateKnowledgeBase(ctx context.Context, knowledgeBase ...
method GetKnowledgeBase (line 213) | func (c *Client) GetKnowledgeBase(ctx context.Context, knowledgeBaseID s...
method ListKnowledgeBases (line 229) | func (c *Client) ListKnowledgeBases(ctx context.Context) ([]KnowledgeBas...
type UpdateKnowledgeBaseRequest (line 244) | type UpdateKnowledgeBaseRequest struct
method UpdateKnowledgeBase (line 251) | func (c *Client) UpdateKnowledgeBase(ctx context.Context,
method DeleteKnowledgeBase (line 270) | func (c *Client) DeleteKnowledgeBase(ctx context.Context, knowledgeBaseI...
type SearchParams (line 286) | type SearchParams struct
method HybridSearch (line 298) | func (c *Client) HybridSearch(ctx context.Context, knowledgeBaseID strin...
method TogglePinKnowledgeBase (line 315) | func (c *Client) TogglePinKnowledgeBase(ctx context.Context, knowledgeBa...
type MoveTarget (line 331) | type MoveTarget struct
method ListMoveTargets (line 339) | func (c *Client) ListMoveTargets(ctx context.Context, knowledgeBaseID st...
method CopyKnowledgeBase (line 355) | func (c *Client) CopyKnowledgeBase(ctx context.Context, request *CopyKno...
method GetKBCloneProgress (line 376) | func (c *Client) GetKBCloneProgress(ctx context.Context, taskID string) ...
FILE: client/mcp_service.go
type MCPTransportType (line 11) | type MCPTransportType
constant MCPTransportSSE (line 14) | MCPTransportSSE MCPTransportType = "sse"
constant MCPTransportHTTPStreamable (line 15) | MCPTransportHTTPStreamable MCPTransportType = "http-streamable"
constant MCPTransportStdio (line 16) | MCPTransportStdio MCPTransportType = "stdio"
type MCPService (line 20) | type MCPService struct
type MCPAuthConfig (line 39) | type MCPAuthConfig struct
type MCPAdvancedConfig (line 46) | type MCPAdvancedConfig struct
type MCPStdioConfig (line 53) | type MCPStdioConfig struct
type MCPTool (line 59) | type MCPTool struct
type MCPResource (line 66) | type MCPResource struct
type MCPTestResult (line 74) | type MCPTestResult struct
method CreateMCPService (line 82) | func (c *Client) CreateMCPService(ctx context.Context, service *MCPServi...
method ListMCPServices (line 99) | func (c *Client) ListMCPServices(ctx context.Context) ([]*MCPService, er...
method GetMCPService (line 116) | func (c *Client) GetMCPService(ctx context.Context, serviceID string) (*...
method UpdateMCPService (line 133) | func (c *Client) UpdateMCPService(ctx context.Context, serviceID string,...
method DeleteMCPService (line 150) | func (c *Client) DeleteMCPService(ctx context.Context, serviceID string)...
method TestMCPService (line 159) | func (c *Client) TestMCPService(ctx context.Context, serviceID string) (...
method GetMCPServiceTools (line 176) | func (c *Client) GetMCPServiceTools(ctx context.Context, serviceID strin...
method GetMCPServiceResources (line 193) | func (c *Client) GetMCPServiceResources(ctx context.Context, serviceID s...
FILE: client/message.go
type ToolResult (line 16) | type ToolResult struct
type ToolCall (line 24) | type ToolCall struct
type AgentStep (line 34) | type AgentStep struct
type Message (line 42) | type Message struct
type MessageListResponse (line 56) | type MessageListResponse struct
method LoadMessages (line 62) | func (c *Client) LoadMessages(
method GetRecentMessages (line 91) | func (c *Client) GetRecentMessages(ctx context.Context, sessionID string...
method GetMessagesBefore (line 96) | func (c *Client) GetMessagesBefore(
type SearchMessagesRequest (line 106) | type SearchMessagesRequest struct
type MessageSearchGroupItem (line 114) | type MessageSearchGroupItem struct
type MessageSearchResult (line 126) | type MessageSearchResult struct
type ChatHistoryKBStats (line 132) | type ChatHistoryKBStats struct
method SearchMessages (line 142) | func (c *Client) SearchMessages(ctx context.Context, req *SearchMessages...
method GetChatHistoryKBStats (line 159) | func (c *Client) GetChatHistoryKBStats(ctx context.Context) (*ChatHistor...
method DeleteMessage (line 176) | func (c *Client) DeleteMessage(ctx context.Context, sessionID string, me...
FILE: client/model.go
type ModelType (line 14) | type ModelType
type ModelSource (line 17) | type ModelSource
type ModelParameters (line 20) | type ModelParameters
type Model (line 23) | type Model struct
type CreateModelRequest (line 37) | type CreateModelRequest struct
type UpdateModelRequest (line 47) | type UpdateModelRequest struct
type ModelResponse (line 55) | type ModelResponse struct
type ModelListResponse (line 61) | type ModelListResponse struct
constant ModelTypeEmbedding (line 68) | ModelTypeEmbedding ModelType = "embedding"
constant ModelTypeChat (line 69) | ModelTypeChat ModelType = "chat"
constant ModelTypeRerank (line 70) | ModelTypeRerank ModelType = "rerank"
constant ModelTypeSummary (line 71) | ModelTypeSummary ModelType = "summary"
constant ModelSourceInternal (line 76) | ModelSourceInternal ModelSource = "internal"
constant ModelSourceExternal (line 77) | ModelSourceExternal ModelSource = "external"
method CreateModel (line 81) | func (c *Client) CreateModel(ctx context.Context, request *CreateModelRe...
method GetModel (line 96) | func (c *Client) GetModel(ctx context.Context, modelID string) (*Model, ...
method ListModels (line 112) | func (c *Client) ListModels(ctx context.Context) ([]Model, error) {
method UpdateModel (line 127) | func (c *Client) UpdateModel(ctx context.Context, modelID string, reques...
method DeleteModel (line 143) | func (c *Client) DeleteModel(ctx context.Context, modelID string) error {
type ModelProvider (line 159) | type ModelProvider struct
type ModelProviderListResponse (line 168) | type ModelProviderListResponse struct
method ListModelProviders (line 175) | func (c *Client) ListModelProviders(ctx context.Context, modelType strin...
FILE: client/organization.go
type Organization (line 12) | type Organization struct
type OrganizationResponse (line 29) | type OrganizationResponse struct
type CreateOrganizationRequest (line 53) | type CreateOrganizationRequest struct
type UpdateOrganizationRequest (line 62) | type UpdateOrganizationRequest struct
type OrganizationMemberResponse (line 73) | type OrganizationMemberResponse struct
type KnowledgeBaseShareResponse (line 85) | type KnowledgeBaseShareResponse struct
type AgentShareResponse (line 101) | type AgentShareResponse struct
type JoinRequestResponse (line 115) | type JoinRequestResponse struct
type UserInfo (line 130) | type UserInfo struct
type SharedKnowledgeBaseInfo (line 143) | type SharedKnowledgeBaseInfo struct
type SharedAgentInfo (line 153) | type SharedAgentInfo struct
type UserInfo (line 163) | type UserInfo struct
method CreateOrganization (line 178) | func (c *Client) CreateOrganization(ctx context.Context, req *CreateOrga...
method ListMyOrganizations (line 194) | func (c *Client) ListMyOrganizations(ctx context.Context) ([]Organizatio...
method GetOrganization (line 212) | func (c *Client) GetOrganization(ctx context.Context, orgID string) (*Or...
method UpdateOrganization (line 228) | func (c *Client) UpdateOrganization(ctx context.Context, orgID string, r...
method DeleteOrganization (line 244) | func (c *Client) DeleteOrganization(ctx context.Context, orgID string) e...
method JoinOrganizationByInviteCode (line 255) | func (c *Client) JoinOrganizationByInviteCode(ctx context.Context, invit...
method SubmitJoinRequest (line 265) | func (c *Client) SubmitJoinRequest(ctx context.Context, inviteCode, mess...
method SearchOrganizations (line 279) | func (c *Client) SearchOrganizations(ctx context.Context, keyword string...
method JoinByOrganizationID (line 307) | func (c *Client) JoinByOrganizationID(ctx context.Context, orgID, messag...
method PreviewOrganizationByInviteCode (line 321) | func (c *Client) PreviewOrganizationByInviteCode(ctx context.Context, co...
method LeaveOrganization (line 337) | func (c *Client) LeaveOrganization(ctx context.Context, orgID string) er...
method RequestRoleUpgrade (line 346) | func (c *Client) RequestRoleUpgrade(ctx context.Context, orgID, requeste...
method GenerateInviteCode (line 359) | func (c *Client) GenerateInviteCode(ctx context.Context, orgID string) (...
method SearchUsersForInvite (line 377) | func (c *Client) SearchUsersForInvite(ctx context.Context, orgID, keywor...
method InviteMember (line 397) | func (c *Client) InviteMember(ctx context.Context, orgID, userID, role s...
method ListOrgMembers (line 410) | func (c *Client) ListOrgMembers(ctx context.Context, orgID string) ([]Or...
method UpdateMemberRole (line 428) | func (c *Client) UpdateMemberRole(ctx context.Context, orgID, userID, ro...
method RemoveMember (line 438) | func (c *Client) RemoveMember(ctx context.Context, orgID, userID string)...
method ListJoinRequests (line 449) | func (c *Client) ListJoinRequests(ctx context.Context, orgID string) ([]...
method ReviewJoinRequest (line 467) | func (c *Client) ReviewJoinRequest(ctx context.Context, orgID, requestID...
method ShareKnowledgeBase (line 483) | func (c *Client) ShareKnowledgeBase(ctx context.Context, kbID, orgID, pe...
method ListKBShares (line 503) | func (c *Client) ListKBShares(ctx context.Context, kbID string) ([]Knowl...
method UpdateSharePermission (line 521) | func (c *Client) UpdateSharePermission(ctx context.Context, kbID, shareI...
method RemoveKBShare (line 531) | func (c *Client) RemoveKBShare(ctx context.Context, kbID, shareID string...
method ShareAgent (line 542) | func (c *Client) ShareAgent(ctx context.Context, agentID, orgID, permiss...
method ListAgentShares (line 562) | func (c *Client) ListAgentShares(ctx context.Context, agentID string) ([...
method RemoveAgentShare (line 580) | func (c *Client) RemoveAgentShare(ctx context.Context, agentID, shareID ...
method ListOrgShares (line 591) | func (c *Client) ListOrgShares(ctx context.Context, orgID string) ([]Kno...
method ListOrgAgentShares (line 609) | func (c *Client) ListOrgAgentShares(ctx context.Context, orgID string) (...
method ListSharedKnowledgeBases (line 627) | func (c *Client) ListSharedKnowledgeBases(ctx context.Context) ([]Shared...
method ListSharedAgents (line 643) | func (c *Client) ListSharedAgents(ctx context.Context) ([]SharedAgentInf...
FILE: client/session.go
type SummaryConfig (line 20) | type SummaryConfig struct
type CreateSessionRequest (line 39) | type CreateSessionRequest struct
type Session (line 45) | type Session struct
type SessionResponse (line 55) | type SessionResponse struct
type SessionListResponse (line 61) | type SessionListResponse struct
method CreateSession (line 70) | func (c *Client) CreateSession(ctx context.Context, request *CreateSessi...
method GetSession (line 85) | func (c *Client) GetSession(ctx context.Context, sessionID string) (*Ses...
method GetSessionsByTenant (line 101) | func (c *Client) GetSessionsByTenant(ctx context.Context, page int, page...
method UpdateSession (line 119) | func (c *Client) UpdateSession(ctx context.Context, sessionID string, re...
method DeleteSession (line 135) | func (c *Client) DeleteSession(ctx context.Context, sessionID string) er...
method BatchDeleteSessions (line 151) | func (c *Client) BatchDeleteSessions(ctx context.Context, sessionIDs []s...
type GenerateTitleRequest (line 170) | type GenerateTitleRequest struct
type GenerateTitleResponse (line 175) | type GenerateTitleResponse struct
type StopSessionRequest (line 181) | type StopSessionRequest struct
method GenerateTitle (line 186) | func (c *Client) GenerateTitle(ctx context.Context, sessionID string, re...
type ImageAttachment (line 204) | type ImageAttachment struct
type KnowledgeQARequest (line 211) | type KnowledgeQARequest struct
type LLMToolCall (line 224) | type LLMToolCall struct
type FunctionCall (line 231) | type FunctionCall struct
type ResponseType (line 236) | type ResponseType
constant ResponseTypeAnswer (line 239) | ResponseTypeAnswer ResponseType = "answer"
constant ResponseTypeReferences (line 240) | ResponseTypeReferences ResponseType = "references"
constant ResponseTypeThinking (line 241) | ResponseTypeThinking ResponseType = "thinking"
constant ResponseTypeToolCall (line 242) | ResponseTypeToolCall ResponseType = "tool_call"
constant ResponseTypeToolResult (line 243) | ResponseTypeToolResult ResponseType = "tool_result"
constant ResponseTypeError (line 244) | ResponseTypeError ResponseType = "error"
constant ResponseTypeReflection (line 245) | ResponseTypeReflection ResponseType = "reflection"
constant ResponseTypeSessionTitle (line 246) | ResponseTypeSessionTitle ResponseType = "session_title"
constant ResponseTypeAgentQuery (line 247) | ResponseTypeAgentQuery ResponseType = "agent_query"
constant ResponseTypeComplete (line 248) | ResponseTypeComplete ResponseType = "complete"
type StreamResponse (line 252) | type StreamResponse struct
method KnowledgeQAStream (line 265) | func (c *Client) KnowledgeQAStream(
method ContinueStream (line 345) | func (c *Client) ContinueStream(
method StopSession (line 411) | func (c *Client) StopSession(ctx context.Context, sessionID string, mess...
type SearchKnowledgeRequest (line 436) | type SearchKnowledgeRequest struct
type SearchKnowledgeResponse (line 444) | type SearchKnowledgeResponse struct
method SearchKnowledge (line 450) | func (c *Client) SearchKnowledge(ctx context.Context, request *SearchKno...
FILE: client/skill.go
type SkillInfo (line 9) | type SkillInfo struct
type SkillListResponse (line 15) | type SkillListResponse struct
method ListSkills (line 22) | func (c *Client) ListSkills(ctx context.Context) ([]SkillInfo, bool, err...
FILE: client/system.go
type SystemInfo (line 10) | type SystemInfo struct
type ParserEngine (line 24) | type ParserEngine struct
type StorageEngineStatusItem (line 32) | type StorageEngineStatusItem struct
type StorageEngineStatusResponse (line 39) | type StorageEngineStatusResponse struct
type StorageCheckRequest (line 45) | type StorageCheckRequest struct
type StorageCheckResponse (line 54) | type StorageCheckResponse struct
type MinioBucketInfo (line 61) | type MinioBucketInfo struct
method GetSystemInfo (line 68) | func (c *Client) GetSystemInfo(ctx context.Context) (*SystemInfo, error) {
method ListParserEngines (line 84) | func (c *Client) ListParserEngines(ctx context.Context) ([]ParserEngine,...
method CheckParserEngines (line 101) | func (c *Client) CheckParserEngines(ctx context.Context, config any) ([]...
method ReconnectDocReader (line 117) | func (c *Client) ReconnectDocReader(ctx context.Context, addr string) er...
method GetStorageEngineStatus (line 127) | func (c *Client) GetStorageEngineStatus(ctx context.Context) (*StorageEn...
method CheckStorageEngine (line 143) | func (c *Client) CheckStorageEngine(ctx context.Context, req *StorageChe...
method ListMinioBuckets (line 159) | func (c *Client) ListMinioBuckets(ctx context.Context) ([]MinioBucketInf...
FILE: client/tag.go
type Tag (line 13) | type Tag struct
type TagWithStats (line 26) | type TagWithStats struct
type CreateTagPayload (line 33) | type CreateTagPayload struct
type UpdateTagPayload (line 40) | type UpdateTagPayload struct
type TagsPage (line 47) | type TagsPage struct
type TagsResponse (line 55) | type TagsResponse struct
type TagResponse (line 63) | type TagResponse struct
type tagSimpleResponse (line 70) | type tagSimpleResponse struct
method ListTags (line 77) | func (c *Client) ListTags(ctx context.Context,
method CreateTag (line 108) | func (c *Client) CreateTag(ctx context.Context,
method UpdateTag (line 126) | func (c *Client) UpdateTag(ctx context.Context,
method UpdateTagBySeqID (line 143) | func (c *Client) UpdateTagBySeqID(ctx context.Context,
method DeleteTag (line 154) | func (c *Client) DeleteTag(ctx context.Context,
method DeleteTagBySeqID (line 183) | func (c *Client) DeleteTagBySeqID(ctx context.Context,
FILE: client/tenant.go
type RetrieverEngines (line 18) | type RetrieverEngines struct
type RetrieverEngineParams (line 23) | type RetrieverEngineParams struct
type Tenant (line 29) | type Tenant struct
type TenantResponse (line 54) | type TenantResponse struct
type TenantListResponse (line 60) | type TenantListResponse struct
method CreateTenant (line 68) | func (c *Client) CreateTenant(ctx context.Context, tenant *Tenant) (*Ten...
method GetTenant (line 83) | func (c *Client) GetTenant(ctx context.Context, tenantID uint64) (*Tenan...
method UpdateTenant (line 99) | func (c *Client) UpdateTenant(ctx context.Context, tenant *Tenant) (*Ten...
method DeleteTenant (line 115) | func (c *Client) DeleteTenant(ctx context.Context, tenantID uint64) error {
method ListTenants (line 131) | func (c *Client) ListTenants(ctx context.Context) ([]Tenant, error) {
method ListAllTenants (line 146) | func (c *Client) ListAllTenants(ctx context.Context) ([]Tenant, error) {
type TenantSearchResponse (line 161) | type TenantSearchResponse struct
method SearchTenants (line 172) | func (c *Client) SearchTenants(ctx context.Context, keyword string, tena...
method GetTenantKV (line 197) | func (c *Client) GetTenantKV(ctx context.Context, key string) (json.RawM...
method UpdateTenantKV (line 215) | func (c *Client) UpdateTenantKV(ctx context.Context, key string, value a...
FILE: client/web_search.go
type WebSearchProvider (line 10) | type WebSearchProvider struct
method GetWebSearchProviders (line 18) | func (c *Client) GetWebSearchProviders(ctx context.Context) ([]json.RawM...
FILE: cmd/download/duckdb/duckdb.go
function downloadSpatial (line 10) | func downloadSpatial() {
function main (line 32) | func main() {
FILE: dataset/qa_dataset.py
function read_parquet (line 36) | def read_parquet(path):
function save_to_parquet (line 40) | def save_to_parquet(df: pd.DataFrame, path: str):
function print_stats (line 47) | def print_stats(df: pd.DataFrame, name: str):
function sample_data (line 59) | def sample_data(
class QAAnsweringSystem (line 102) | class QAAnsweringSystem:
method __init__ (line 103) | def __init__(
method get_context_for_qid (line 127) | def get_context_for_qid(self, qid: str) -> str:
method answer_question (line 148) | def answer_question(self, qid: str, model: str = "gpt-4o-2024-05-13") ...
function sample_command (line 183) | def sample_command(args):
function generate_answers (line 217) | def generate_answers(input_dir: str, output_dir: str, max_retries: int =...
function show_results (line 288) | def show_results(input_dir: str, n: int = 5):
function main (line 330) | def main():
FILE: docreader/client/client.go
function getMaxMessageSize (line 16) | func getMaxMessageSize() int {
type ImageRefInfo (line 28) | type ImageRefInfo struct
type Client (line 36) | type Client struct
method Close (line 71) | func (c *Client) Close() error {
method SetDebug (line 76) | func (c *Client) SetDebug(debug bool) {
method Log (line 80) | func (c *Client) Log(level string, format string, args ...interface{}) {
function NewClient (line 42) | func NewClient(addr string) (*Client, error) {
function GetImageRefsFromResponse (line 88) | func GetImageRefsFromResponse(resp *proto.ReadResponse) []ImageRefInfo {
FILE: docreader/client/client_test.go
function init (line 13) | func init() {
function TestReadURL (line 19) | func TestReadURL(t *testing.T) {
function TestReadFile (line 49) | func TestReadFile(t *testing.T) {
FILE: docreader/config.py
function _get_first_env (line 10) | def _get_first_env(keys: Iterable[str]) -> Tuple[Optional[str], Optional...
function _get_str (line 18) | def _get_str(keys: Iterable[str], default: str = "") -> str:
function _get_int (line 23) | def _get_int(keys: Iterable[str], default: int) -> int:
function _get_bool (line 33) | def _get_bool(keys: Iterable[str], default: bool) -> bool:
function _mask_secret (line 40) | def _mask_secret(v: str) -> str:
class DocReaderConfig (line 49) | class DocReaderConfig:
function load_config (line 63) | def load_config() -> DocReaderConfig:
function dump_config (line 98) | def dump_config(mask_secrets: bool = True) -> Dict[str, Any]:
function print_config (line 111) | def print_config() -> None:
FILE: docreader/main.py
function to_valid_utf8_text (line 31) | def to_valid_utf8_text(s: Optional[str]) -> str:
function _resolve_images (line 54) | def _resolve_images(images: dict, request_id: str, storage_map: dict | N...
class DocReaderServicer (line 98) | class DocReaderServicer(docreader_pb2_grpc.DocReaderServicer):
method __init__ (line 99) | def __init__(self):
method Read (line 103) | def Read(self, request: ReadRequest, context):
method ListEngines (line 167) | def ListEngines(self, request, context):
function main (line 183) | def main():
FILE: docreader/models/document.py
class Chunk (line 9) | class Chunk(BaseModel):
method to_dict (line 25) | def to_dict(self, **kwargs: Any) -> Dict[str, Any]:
method to_json (line 33) | def to_json(self, **kwargs: Any) -> str:
method __hash__ (line 38) | def __hash__(self):
method __eq__ (line 42) | def __eq__(self, other):
method from_dict (line 47) | def from_dict(cls, data: Dict[str, Any], **kwargs: Any): # type: ignore
method from_json (line 56) | def from_json(cls, data_str: str, **kwargs: Any): # type: ignore
class Document (line 62) | class Document(BaseModel):
method set_content (line 78) | def set_content(self, content: str) -> None:
method get_content (line 82) | def get_content(self) -> str:
method is_valid (line 86) | def is_valid(self) -> bool:
FILE: docreader/models/read_config.py
class ChunkingConfig (line 5) | class ChunkingConfig:
FILE: docreader/ocr/__init__.py
class OCREngine (line 12) | class OCREngine:
method get_instance (line 19) | def get_instance(cls, backend_type: str) -> OCRBackend:
FILE: docreader/ocr/base.py
class OCRBackend (line 10) | class OCRBackend(ABC):
method predict (line 14) | def predict(self, image: Union[str, bytes, Image.Image]) -> str:
class DummyOCRBackend (line 26) | class DummyOCRBackend(OCRBackend):
method predict (line 29) | def predict(self, image: Union[str, bytes, Image.Image]) -> str:
FILE: docreader/ocr/paddle.py
class PaddleOCRBackend (line 16) | class PaddleOCRBackend(OCRBackend):
method __init__ (line 19) | def __init__(self):
method predict (line 118) | def predict(self, image: Union[str, bytes, Image.Image]) -> str:
method _predict (line 137) | def _predict(self, image: Image.Image) -> str:
FILE: docreader/ocr/vlm.py
class VLMOCRBackend (line 14) | class VLMOCRBackend(OCRBackend):
method __init__ (line 17) | def __init__(self):
method predict (line 41) | def predict(self, image: Union[str, bytes, Image.Image]) -> str:
FILE: docreader/parser/base_parser.py
class BaseParser (line 13) | class BaseParser(ABC):
method __init__ (line 21) | def __init__(
method parse_into_text (line 37) | def parse_into_text(self, content: bytes) -> Document:
method parse (line 45) | def parse(self, content: bytes) -> Document:
FILE: docreader/parser/chain_parser.py
class FirstParser (line 20) | class FirstParser(BaseParser):
method __init__ (line 38) | def __init__(self, *args, **kwargs):
method parse_into_text (line 48) | def parse_into_text(self, content: bytes) -> Document:
method create (line 75) | def create(cls, *parser_classes: Type["BaseParser"]) -> Type["FirstPar...
class PipelineParser (line 94) | class PipelineParser(BaseParser):
method __init__ (line 112) | def __init__(self, *args, **kwargs):
method parse_into_text (line 122) | def parse_into_text(self, content: bytes) -> Document:
method create (line 151) | def create(cls, *parser_classes: Type["BaseParser"]) -> Type["Pipeline...
FILE: docreader/parser/doc_parser.py
class SandboxExecutor (line 16) | class SandboxExecutor:
method __init__ (line 19) | def __init__(self, proxy: Optional[str] = None, default_timeout: int =...
method execute_in_sandbox (line 31) | def execute_in_sandbox(self, cmd: List[str]) -> tuple:
method _execute_with_proxy (line 54) | def _execute_with_proxy(self, cmd: List[str]) -> tuple:
class DocParser (line 95) | class DocParser(Docx2Parser):
method __init__ (line 98) | def __init__(self, *args, **kwargs):
method parse_into_text (line 103) | def parse_into_text(self, content: bytes) -> Document:
method _parse_with_docx (line 129) | def _parse_with_docx(self, temp_file_path: str) -> Document:
method _parse_with_antiword (line 142) | def _parse_with_antiword(self, temp_file_path: str) -> Document:
method _parse_with_textract (line 164) | def _parse_with_textract(self, temp_file_path: str) -> Document:
method _try_convert_doc_to_docx (line 170) | def _try_convert_doc_to_docx(self, doc_path: str) -> Optional[bytes]:
method _try_find_executable_path (line 231) | def _try_find_executable_path(
method _try_find_soffice (line 269) | def _try_find_soffice(self) -> Optional[str]:
method _try_find_antiword (line 293) | def _try_find_antiword(self) -> Optional[str]:
FILE: docreader/parser/docx2_parser.py
class Docx2Parser (line 10) | class Docx2Parser(FirstParser):
FILE: docreader/parser/docx_parser.py
class ImageData (line 29) | class ImageData:
class LineData (line 38) | class LineData:
class DocxParser (line 52) | class DocxParser(BaseParser):
method __init__ (line 55) | def __init__(
method parse_into_text (line 79) | def parse_into_text(self, content: bytes) -> DocumentModel:
method _parse_using_simple_method (line 185) | def _parse_using_simple_method(self, content: bytes) -> DocumentModel:
class Docx (line 268) | class Docx:
method __init__ (line 269) | def __init__(self, max_image_size=1920, enable_multimodal=False, uploa...
method get_picture (line 277) | def get_picture(self, document, paragraph) -> Optional[Image.Image]:
method _identify_page_paragraph_mapping (line 319) | def _identify_page_paragraph_mapping(self, max_page=100000):
method __call__ (line 453) | def __call__(
method _load_document (line 521) | def _load_document(self, binary):
method _init_shared_resources (line 538) | def _init_shared_resources(self):
method _get_request_id (line 546) | def _get_request_id(self):
method _apply_page_limit (line 560) | def _apply_page_limit(self, para_page_mapping, from_page, to_page):
method _process_document (line 609) | def _process_document(
method _check_document_has_images (line 655) | def _check_document_has_images(self):
method _calculate_optimal_workers (line 669) | def _calculate_optimal_workers(
method _prepare_document_sharing (line 690) | def _prepare_document_sharing(self, binary):
method _prepare_multiprocess_args (line 706) | def _prepare_multiprocess_args(
method _execute_multiprocess_tasks (line 743) | def _execute_multiprocess_tasks(self, args_list, max_workers):
method _collect_process_results (line 778) | def _collect_process_results(self, future_to_idx, args_list, batch_sta...
method _process_multiprocess_results (line 837) | def _process_multiprocess_results(self, results: List[LineData]):
method _cleanup_temp_image_files (line 956) | def _cleanup_temp_image_files(self, temp_paths):
method _cleanup_temp_file (line 992) | def _cleanup_temp_file(self, temp_file_path):
method _process_tables (line 1005) | def _process_tables(self):
method _convert_table_to_html (line 1030) | def _convert_table_to_html(self, table):
method _safe_concat_images (line 1060) | def _safe_concat_images(self, images):
function _save_image_to_temp (line 1110) | def _save_image_to_temp(logger, image, page_num, img_idx):
function process_page_multiprocess (line 1145) | def process_page_multiprocess(
function _load_document_in_process (line 1270) | def _load_document_in_process(logger, page_num, temp_file_path):
function _extract_page_content_in_process (line 1300) | def _extract_page_content_in_process(
function _extract_image_in_process (line 1400) | def _extract_image_in_process(
FILE: docreader/parser/excel_parser.py
class ExcelParser (line 20) | class ExcelParser(BaseParser):
method parse_into_text (line 43) | def parse_into_text(self, content: bytes) -> Document:
FILE: docreader/parser/image_parser.py
class ImageParser (line 11) | class ImageParser(BaseParser):
method parse_into_text (line 19) | def parse_into_text(self, content: bytes) -> Document:
FILE: docreader/parser/markdown_parser.py
class MarkdownTableUtil (line 30) | class MarkdownTableUtil:
method __init__ (line 49) | def __init__(self):
method format_table (line 61) | def format_table(self, content: str) -> str:
method _self_test (line 106) | def _self_test():
class MarkdownTableFormatter (line 127) | class MarkdownTableFormatter(BaseParser):
method __init__ (line 143) | def __init__(self, **kwargs):
method parse_into_text (line 147) | def parse_into_text(self, content: bytes) -> Document:
class MarkdownImageUtil (line 163) | class MarkdownImageUtil:
method __init__ (line 177) | def __init__(self):
method extract_image (line 188) | def extract_image(
method extract_base64 (line 235) | def extract_base64(
method replace_path (line 296) | def replace_path(self, content: str, images: Dict[str, str]) -> str:
method _self_test (line 339) | def _self_test():
class MarkdownImageBase64 (line 350) | class MarkdownImageBase64(BaseParser):
method __init__ (line 358) | def __init__(self, **kwargs):
method parse_into_text (line 362) | def parse_into_text(self, content: bytes) -> Document:
class MarkdownParser (line 374) | class MarkdownParser(PipelineParser):
FILE: docreader/parser/markitdown_parser.py
class StdMarkitdownParser (line 14) | class StdMarkitdownParser(BaseParser):
method __init__ (line 22) | def __init__(self, *args, **kwargs):
method parse_into_text (line 27) | def parse_into_text(self, content: bytes) -> Document:
class MarkitdownParser (line 45) | class MarkitdownParser(PipelineParser):
FILE: docreader/parser/parser.py
class Parser (line 11) | class Parser:
method __init__ (line 18) | def __init__(self):
method parse_file (line 25) | def parse_file(
method parse_url (line 65) | def parse_url(
FILE: docreader/parser/pdf_parser.py
class PDFParser (line 5) | class PDFParser(FirstParser):
FILE: docreader/parser/registry.py
class ParserEngineRegistry (line 18) | class ParserEngineRegistry:
method __init__ (line 26) | def __init__(self):
method register (line 32) | def register(
method get_parser_class (line 51) | def get_parser_class(self, engine: str, file_type: str) -> Type[BasePa...
method list_engines (line 77) | def list_engines(self, overrides: Optional[Dict[str, str]] = None) -> ...
method get_engine_names (line 108) | def get_engine_names(self) -> List[str]:
function _build_default_registry (line 112) | def _build_default_registry() -> ParserEngineRegistry:
FILE: docreader/parser/storage.py
function _cfg (line 18) | def _cfg(storage_config: Optional[Dict], key: str, *env_keys: str, defau...
class Storage (line 31) | class Storage(ABC):
method upload_file (line 35) | def upload_file(self, file_path: str) -> str:
method upload_bytes (line 39) | def upload_bytes(self, content: bytes, file_ext: str = ".png") -> str:
class CosStorage (line 43) | class CosStorage(Storage):
method __init__ (line 46) | def __init__(self, storage_config: Optional[Dict] = None):
method _init_cos_client (line 52) | def _init_cos_client(self):
method _get_download_url (line 85) | def _get_download_url(self, bucket_name, region, object_key):
method upload_file (line 88) | def upload_file(self, file_path: str) -> str:
method upload_bytes (line 106) | def upload_bytes(self, content: bytes, file_ext: str = ".png") -> str:
class MinioStorage (line 127) | class MinioStorage(Storage):
method __init__ (line 130) | def __init__(self, storage_config: Optional[Dict] = None):
method _init_minio_client (line 136) | def _init_minio_client(self):
method _get_download_url (line 177) | def _get_download_url(self, object_key: str):
method upload_file (line 184) | def upload_file(self, file_path: str) -> str:
method upload_bytes (line 210) | def upload_bytes(self, content: bytes, file_ext: str = ".png") -> str:
class LocalStorage (line 235) | class LocalStorage(Storage):
method __init__ (line 242) | def __init__(self, storage_config: Optional[Dict] = None):
method _to_url (line 259) | def _to_url(self, fpath: str) -> str:
method upload_file (line 265) | def upload_file(self, file_path: str) -> str:
method upload_bytes (line 268) | def upload_bytes(self, content: bytes, file_ext: str = ".png") -> str:
class Base64Storage (line 277) | class Base64Storage(Storage):
method upload_file (line 278) | def upload_file(self, file_path: str) -> str:
method upload_bytes (line 281) | def upload_bytes(self, content: bytes, file_ext: str = ".png") -> str:
class DummyStorage (line 286) | class DummyStorage(Storage):
method upload_file (line 289) | def upload_file(self, file_path: str) -> str:
method upload_bytes (line 292) | def upload_bytes(self, content: bytes, file_ext: str = ".png") -> str:
function create_storage (line 296) | def create_storage(storage_config: Optional[Dict[str, str]] = None) -> S...
FILE: docreader/parser/web_parser.py
class StdWebParser (line 17) | class StdWebParser(BaseParser):
method __init__ (line 25) | def __init__(self, title: str, **kwargs):
method scrape (line 38) | async def scrape(self, url: str) -> str:
method parse_into_text (line 85) | def parse_into_text(self, content: bytes) -> Document:
class WebParser (line 116) | class WebParser(PipelineParser):
FILE: docreader/proto/docreader.pb.go
constant _ (line 19) | _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
constant _ (line 21) | _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
type ReadConfig (line 24) | type ReadConfig struct
method Reset (line 32) | func (x *ReadConfig) Reset() {
method String (line 39) | func (x *ReadConfig) String() string {
method ProtoMessage (line 43) | func (*ReadConfig) ProtoMessage() {}
method ProtoReflect (line 45) | func (x *ReadConfig) ProtoReflect() protoreflect.Message {
method Descriptor (line 58) | func (*ReadConfig) Descriptor() ([]byte, []int) {
method GetParserEngine (line 62) | func (x *ReadConfig) GetParserEngine() string {
method GetParserEngineOverrides (line 69) | func (x *ReadConfig) GetParserEngineOverrides() map[string]string {
type ReadRequest (line 77) | type ReadRequest struct
method Reset (line 90) | func (x *ReadRequest) Reset() {
method String (line 97) | func (x *ReadRequest) String() string {
method ProtoMessage (line 101) | func (*ReadRequest) ProtoMessage() {}
method ProtoReflect (line 103) | func (x *ReadRequest) ProtoReflect() protoreflect.Message {
method Descriptor (line 116) | func (*ReadRequest) Descriptor() ([]byte, []int) {
method GetFileContent (line 120) | func (x *ReadRequest) GetFileContent() []byte {
method GetFileName (line 127) | func (x *ReadRequest) GetFileName() string {
method GetFileType (line 134) | func (x *ReadRequest) GetFileType() string {
method GetUrl (line 141) | func (x *ReadRequest) GetUrl() string {
method GetTitle (line 148) | func (x *ReadRequest) GetTitle() string {
method GetConfig (line 155) | func (x *ReadRequest) GetConfig() *ReadConfig {
method GetRequestId (line 162) | func (x *ReadRequest) GetRequestId() string {
type ImageRef (line 169) | type ImageRef struct
method Reset (line 180) | func (x *ImageRef) Reset() {
method String (line 187) | func (x *ImageRef) String() string {
method ProtoMessage (line 191) | func (*ImageRef) ProtoMessage() {}
method ProtoReflect (line 193) | func (x *ImageRef) ProtoReflect() protoreflect.Message {
method Descriptor (line 206) | func (*ImageRef) Descriptor() ([]byte, []int) {
method GetFilename (line 210) | func (x *ImageRef) GetFilename() string {
method GetOriginalRef (line 217) | func (x *ImageRef) GetOriginalRef() string {
method GetMimeType (line 224) | func (x *ImageRef) GetMimeType() string {
method GetStorageKey (line 231) | func (x *ImageRef) GetStorageKey() string {
method GetImageData (line 238) | func (x *ImageRef) GetImageData() []byte {
type ReadResponse (line 245) | type ReadResponse struct
method Reset (line 256) | func (x *ReadResponse) Reset() {
method String (line 263) | func (x *ReadResponse) String() string {
method ProtoMessage (line 267) | func (*ReadResponse) ProtoMessage() {}
method ProtoReflect (line 269) | func (x *ReadResponse) ProtoReflect() protoreflect.Message {
method Descriptor (line 282) | func (*ReadResponse) Descriptor() ([]byte, []int) {
method GetMarkdownContent (line 286) | func (x *ReadResponse) GetMarkdownContent() string {
method GetImageRefs (line 293) | func (x *ReadResponse) GetImageRefs() []*ImageRef {
method GetImageDirPath (line 300) | func (x *ReadResponse) GetImageDirPath() string {
method GetMetadata (line 307) | func (x *ReadResponse) GetMetadata() map[string]string {
method GetError (line 314) | func (x *ReadResponse) GetError() string {
type ListEnginesRequest (line 321) | type ListEnginesRequest struct
method Reset (line 328) | func (x *ListEnginesRequest) Reset() {
method String (line 335) | func (x *ListEnginesRequest) String() string {
method ProtoMessage (line 339) | func (*ListEnginesRequest) ProtoMessage() {}
method ProtoReflect (line 341) | func (x *ListEnginesRequest) ProtoReflect() protoreflect.Message {
method Descriptor (line 354) | func (*ListEnginesRequest) Descriptor() ([]byte, []int) {
method GetConfigOverrides (line 358) | func (x *ListEnginesRequest) GetConfigOverrides() map[string]string {
type ParserEngineInfo (line 365) | type ParserEngineInfo struct
method Reset (line 376) | func (x *ParserEngineInfo) Reset() {
method String (line 383) | func (x *ParserEngineInfo) String() string {
method ProtoMessage (line 387) | func (*ParserEngineInfo) ProtoMessage() {}
method ProtoReflect (line 389) | func (x *ParserEngineInfo) ProtoReflect() protoreflect.Message {
method Descriptor (line 402) | func (*ParserEngineInfo) Descriptor() ([]byte, []int) {
method GetName (line 406) | func (x *ParserEngineInfo) GetName() string {
method GetDescription (line 413) | func (x *ParserEngineInfo) GetDescription() string {
method GetFileTypes (line 420) | func (x *ParserEngineInfo) GetFileTypes() []string {
method GetAvailable (line 427) | func (x *ParserEngineInfo) GetAvailable() bool {
method GetUnavailableReason (line 434) | func (x *ParserEngineInfo) GetUnavailableReason() string {
type ListEnginesResponse (line 441) | type ListEnginesResponse struct
method Reset (line 448) | func (x *ListEnginesResponse) Reset() {
method String (line 455) | func (x *ListEnginesResponse) String() string {
method ProtoMessage (line 459) | func (*ListEnginesResponse) ProtoMessage() {}
method ProtoReflect (line 461) | func (x *ListEnginesResponse) ProtoReflect() protoreflect.Message {
method Descriptor (line 474) | func (*ListEnginesResponse) Descriptor() ([]byte, []int) {
method GetEngines (line 478) | func (x *ListEnginesResponse) GetEngines() []*ParserEngineInfo {
constant file_docreader_proto_rawDesc (line 487) | file_docreader_proto_rawDesc = "" +
function file_docreader_proto_rawDescGZIP (line 547) | func file_docreader_proto_rawDescGZIP() []byte {
function init (line 585) | func init() { file_docreader_proto_init() }
function file_docreader_proto_init (line 586) | func file_docreader_proto_init() {
FILE: docreader/proto/docreader_grpc.pb.go
constant _ (line 19) | _ = grpc.SupportPackageIsVersion9
constant DocReader_Read_FullMethodName (line 22) | DocReader_Read_FullMethodName = "/docreader.DocReader/Read"
constant DocReader_ListEngines_FullMethodName (line 23) | DocReader_ListEngines_FullMethodName = "/docreader.DocReader/ListEngines"
type DocReaderClient (line 29) | type DocReaderClient interface
type docReaderClient (line 34) | type docReaderClient struct
method Read (line 42) | func (c *docReaderClient) Read(ctx context.Context, in *ReadRequest, o...
method ListEngines (line 52) | func (c *docReaderClient) ListEngines(ctx context.Context, in *ListEng...
function NewDocReaderClient (line 38) | func NewDocReaderClient(cc grpc.ClientConnInterface) DocReaderClient {
type DocReaderServer (line 65) | type DocReaderServer interface
type UnimplementedDocReaderServer (line 76) | type UnimplementedDocReaderServer struct
method Read (line 78) | func (UnimplementedDocReaderServer) Read(context.Context, *ReadRequest...
method ListEngines (line 81) | func (UnimplementedDocReaderServer) ListEngines(context.Context, *List...
method mustEmbedUnimplementedDocReaderServer (line 84) | func (UnimplementedDocReaderServer) mustEmbedUnimplementedDocReaderSer...
method testEmbeddedByValue (line 85) | func (UnimplementedDocReaderServer) testEmbeddedByValue() ...
type UnsafeDocReaderServer (line 90) | type UnsafeDocReaderServer interface
function RegisterDocReaderServer (line 94) | func RegisterDocReaderServer(s grpc.ServiceRegistrar, srv DocReaderServe...
function _DocReader_Read_Handler (line 105) | func _DocReader_Read_Handler(srv interface{}, ctx context.Context, dec f...
function _DocReader_ListEngines_Handler (line 123) | func _DocReader_ListEngines_Handler(srv interface{}, ctx context.Context...
FILE: docreader/proto/docreader_pb2.pyi
class ReadConfig (line 9) | class ReadConfig(_message.Message):
class ParserEngineOverridesEntry (line 11) | class ParserEngineOverridesEntry(_message.Message):
method __init__ (line 17) | def __init__(self, key: _Optional[str] = ..., value: _Optional[str] ...
method __init__ (line 22) | def __init__(self, parser_engine: _Optional[str] = ..., parser_engine_...
class ReadRequest (line 24) | class ReadRequest(_message.Message):
method __init__ (line 40) | def __init__(self, file_content: _Optional[bytes] = ..., file_name: _O...
class ImageRef (line 42) | class ImageRef(_message.Message):
method __init__ (line 54) | def __init__(self, filename: _Optional[str] = ..., original_ref: _Opti...
class ReadResponse (line 56) | class ReadResponse(_message.Message):
class MetadataEntry (line 58) | class MetadataEntry(_message.Message):
method __init__ (line 64) | def __init__(self, key: _Optional[str] = ..., value: _Optional[str] ...
method __init__ (line 75) | def __init__(self, markdown_content: _Optional[str] = ..., image_refs:...
class ListEnginesRequest (line 77) | class ListEnginesRequest(_message.Message):
class ConfigOverridesEntry (line 79) | class ConfigOverridesEntry(_message.Message):
method __init__ (line 85) | def __init__(self, key: _Optional[str] = ..., value: _Optional[str] ...
method __init__ (line 88) | def __init__(self, config_overrides: _Optional[_Mapping[str, str]] = ....
class ParserEngineInfo (line 90) | class ParserEngineInfo(_message.Message):
method __init__ (line 102) | def __init__(self, name: _Optional[str] = ..., description: _Optional[...
class ListEnginesResponse (line 104) | class ListEnginesResponse(_message.Message):
method __init__ (line 108) | def __init__(self, engines: _Optional[_Iterable[_Union[ParserEngineInf...
FILE: docreader/proto/docreader_pb2_grpc.py
class DocReaderStub (line 28) | class DocReaderStub(object):
method __init__ (line 31) | def __init__(self, channel):
class DocReaderServicer (line 49) | class DocReaderServicer(object):
method Read (line 52) | def Read(self, request, context):
method ListEngines (line 58) | def ListEngines(self, request, context):
function add_DocReaderServicer_to_server (line 65) | def add_DocReaderServicer_to_server(servicer, server):
class DocReader (line 85) | class DocReader(object):
method Read (line 89) | def Read(request,
method ListEngines (line 116) | def ListEngines(request,
FILE: docreader/scripts/download_deps.py
function init_ocr_model (line 26) | def init_ocr_model():
FILE: docreader/splitter/header_hook.py
class HeaderTrackerHook (line 7) | class HeaderTrackerHook(BaseModel):
method __init__ (line 23) | def __init__(
class HeaderTracker (line 67) | class HeaderTracker(BaseModel):
method update (line 74) | def update(self, split: str) -> Dict[int, str]:
method get_headers (line 104) | def get_headers(self) -> str:
FILE: docreader/splitter/splitter.py
class TextSplitter (line 31) | class TextSplitter(BaseModel, Generic[T]):
method __init__ (line 65) | def __init__(
method split_text (line 116) | def split_text(self, text: str) -> List[Tuple[int, int, str]]:
method _split (line 146) | def _split(self, text: str) -> List[str]:
method _merge (line 183) | def _merge(self, splits: List[str]) -> List[Tuple[int, int, str]]:
method _split_protected (line 299) | def _split_protected(self, text: str) -> List[Tuple[int, str]]:
method _join (line 335) | def _join(self, splits: List[str], protect: List[Tuple[int, str]]) -> ...
method _validate_chunks (line 409) | def _validate_chunks(
method restore_text (line 517) | def restore_text(self, chunks: List[Tuple[int, int, str]]) -> str:
FILE: docreader/utils/__init__.py
function singleton (line 25) | def singleton(cls, *args, **kw):
function rmSpace (line 40) | def rmSpace(txt):
function findMaxDt (line 46) | def findMaxDt(fnm):
function findMaxTm (line 66) | def findMaxTm(fnm):
FILE: docreader/utils/endecode.py
function decode_image (line 23) | def decode_image(image: Union[str, bytes, Image.Image, np.ndarray]) -> str:
function encode_image (line 78) | def encode_image(image: str, errors="strict") -> bytes:
function encode_bytes (line 115) | def encode_bytes(content: str) -> bytes:
function decode_bytes (line 133) | def decode_bytes(
FILE: docreader/utils/request.py
function set_request_id (line 17) | def set_request_id(request_id: str) -> None:
function get_request_id (line 22) | def get_request_id() -> Optional[str]:
class MillisecondFormatter (line 27) | class MillisecondFormatter(logging.Formatter):
method formatTime (line 30) | def formatTime(self, record, datefmt=None):
function init_logging_request_id (line 47) | def init_logging_request_id():
class RequestIdFilter (line 84) | class RequestIdFilter(logging.Filter):
method filter (line 87) | def filter(self, record: LogRecord) -> bool:
function request_id_context (line 121) | def request_id_context(request_id: str = None):
FILE: docreader/utils/split.py
function split_text_keep_separator (line 5) | def split_text_keep_separator(text: str, separator: str) -> List[str]:
function split_by_sep (line 27) | def split_by_sep(sep: str, keep_sep: bool = True) -> Callable[[str], Lis...
function split_by_char (line 43) | def split_by_char() -> Callable[[str], List[str]]:
function split_by_regex (line 52) | def split_by_regex(regex: str) -> Callable[[str], List[str]]:
function match_by_regex (line 68) | def match_by_regex(regex: str) -> Callable[[str], bool]:
FILE: docreader/utils/tempfile.py
class TempFileContext (line 8) | class TempFileContext:
method __init__ (line 9) | def __init__(self, file_content: bytes, suffix: str):
method __enter__ (line 19) | def __enter__(self):
method __exit__ (line 31) | def __exit__(self, exc_type, exc_val, exc_tb):
class TempDirContext (line 44) | class TempDirContext:
method __init__ (line 45) | def __init__(self):
method __enter__ (line 51) | def __enter__(self):
method __exit__ (line 59) | def __exit__(self, exc_type, exc_val, exc_tb):
FILE: docs/docs.go
constant docTemplate (line 6) | docTemplate = `{
function init (line 10707) | func init() {
FILE: examples/skills/pdf-processing/scripts/analyze_form.py
function analyze_form (line 10) | def analyze_form(pdf_path):
FILE: examples/skills/pdf-processing/scripts/extract_text.py
function extract_text (line 9) | def extract_text(pdf_path, page_num=None):
FILE: frontend/src/api/agent/index.ts
type CustomAgentConfig (line 4) | interface CustomAgentConfig {
type CustomAgent (line 78) | interface CustomAgent {
type CreateAgentRequest (line 92) | interface CreateAgentRequest {
type UpdateAgentRequest (line 100) | interface UpdateAgentRequest {
constant BUILTIN_QUICK_ANSWER_ID (line 108) | const BUILTIN_QUICK_ANSWER_ID = 'builtin-quick-answer';
constant BUILTIN_SMART_REASONING_ID (line 109) | const BUILTIN_SMART_REASONING_ID = 'builtin-smart-reasoning';
constant AGENT_MODE_QUICK_ANSWER (line 112) | const AGENT_MODE_QUICK_ANSWER = 'quick-answer';
constant AGENT_MODE_SMART_REASONING (line 113) | const AGENT_MODE_SMART_REASONING = 'smart-reasoning';
constant BUILTIN_AGENT_NORMAL_ID (line 116) | const BUILTIN_AGENT_NORMAL_ID = BUILTIN_QUICK_ANSWER_ID;
constant BUILTIN_AGENT_AGENT_ID (line 118) | const BUILTIN_AGENT_AGENT_ID = BUILTIN_SMART_REASONING_ID;
function listAgents (line 122) | function listAgents() {
function getAgentById (line 127) | function getAgentById(id: string) {
function createAgent (line 132) | function createAgent(data: CreateAgentRequest) {
function updateAgent (line 137) | function updateAgent(id: string, data: UpdateAgentRequest) {
function deleteAgent (line 142) | function deleteAgent(id: string) {
function copyAgent (line 147) | function copyAgent(id: string) {
function isBuiltinAgent (line 152) | function isBuiltinAgent(agentId: string): boolean {
type PlaceholderDefinition (line 157) | interface PlaceholderDefinition {
type PlaceholdersResponse (line 164) | interface PlaceholdersResponse {
function getPlaceholders (line 175) | function getPlaceholders() {
type IMChannel (line 181) | interface IMChannel {
function listIMChannels (line 196) | function listIMChannels(agentId: string) {
function createIMChannel (line 200) | function createIMChannel(agentId: string, data: Partial<IMChannel>) {
function updateIMChannel (line 204) | function updateIMChannel(id: string, data: Partial<IMChannel>) {
function deleteIMChannel (line 208) | function deleteIMChannel(id: string) {
function toggleIMChannel (line 212) | function toggleIMChannel(id: string) {
FILE: frontend/src/api/auth/index.ts
type LoginRequest (line 7) | interface LoginRequest {
type LoginResponse (line 12) | interface LoginResponse {
type RegisterRequest (line 43) | interface RegisterRequest {
type RegisterResponse (line 49) | interface RegisterResponse {
type UserInfo (line 67) | interface UserInfo {
type TenantInfo (line 79) | interface TenantInfo {
type KnowledgeBaseInfo (line 95) | interface KnowledgeBaseInfo {
type ModelInfo (line 107) | interface ModelInfo {
function login (line 121) | async function login(data: LoginRequest): Promise<LoginResponse> {
function register (line 136) | async function register(data: RegisterRequest): Promise<RegisterResponse> {
function getCurrentUser (line 151) | async function getCurrentUser(): Promise<{ success: boolean; data?: { us...
function getCurrentTenant (line 166) | async function getCurrentTenant(): Promise<{ success: boolean; data?: Te...
function refreshToken (line 181) | async function refreshToken(refreshToken: string): Promise<{ success: bo...
function logout (line 212) | async function logout(): Promise<{ success: boolean; message?: string }> {
function validateToken (line 229) | async function validateToken(): Promise<{ success: boolean; valid?: bool...
FILE: frontend/src/api/chat-history.ts
type ChatHistoryConfig (line 5) | interface ChatHistoryConfig {
type ChatHistoryKBStats (line 12) | interface ChatHistoryKBStats {
type MessageSearchRequest (line 22) | interface MessageSearchRequest {
type MessageSearchGroupItem (line 30) | interface MessageSearchGroupItem {
type MessageSearchResult (line 42) | interface MessageSearchResult {
function getTenantChatHistoryConfig (line 48) | function getTenantChatHistoryConfig() {
function updateTenantChatHistoryConfig (line 53) | function updateTenantChatHistoryConfig(config: ChatHistoryConfig) {
function getChatHistoryKBStats (line 58) | function getChatHistoryKBStats() {
function searchMessages (line 63) | function searchMessages(data: MessageSearchRequest) {
FILE: frontend/src/api/chat/index.ts
function createSessions (line 5) | async function createSessions(data = {}) {
function getSessionsList (line 9) | async function getSessionsList(page: number, page_size: number) {
function generateSessionsTitle (line 13) | async function generateSessionsTitle(session_id: string, data: any) {
function knowledgeChat (line 17) | async function knowledgeChat(data: { session_id: string; query: string; ...
function agentChat (line 22) | async function agentChat(data: {
function getMessageList (line 35) | async function getMessageList(data: { session_id: string; limit: number,...
function delSession (line 43) | async function delSession(session_id: string) {
function batchDelSessions (line 47) | async function batchDelSessions(ids: string[]) {
function deleteAllSessions (line 51) | async function deleteAllSessions() {
function getSession (line 55) | async function getSession(session_id: string) {
function stopSession (line 59) | async function stopSession(session_id: string, message_id: string) {
function clearSessionMessages (line 63) | async function clearSessionMessages(session_id: string) {
FILE: frontend/src/api/chat/streame.ts
type StreamOptions (line 8) | interface StreamOptions {
function useStream (line 19) | function useStream() {
FILE: frontend/src/api/initialization/index.ts
type InitializationConfig (line 7) | interface InitializationConfig {
type DownloadTask (line 66) | interface DownloadTask {
type KBModelConfigRequest (line 77) | interface KBModelConfigRequest {
function updateKBConfig (line 111) | function updateKBConfig(kbId: string, config: KBModelConfigRequest): Pro...
function initializeSystemByKB (line 127) | function initializeSystemByKB(kbId: string, config: InitializationConfig...
function checkOllamaStatus (line 143) | function checkOllamaStatus(): Promise<{ available: boolean; version?: st...
type OllamaModelInfo (line 157) | interface OllamaModelInfo {
function listOllamaModels (line 165) | function listOllamaModels(): Promise<OllamaModelInfo[]> {
function checkOllamaModels (line 179) | function checkOllamaModels(models: string[]): Promise<{ models: Record<s...
function downloadOllamaModel (line 193) | function downloadOllamaModel(modelName: string): Promise<{ taskId: strin...
function getDownloadProgress (line 207) | function getDownloadProgress(taskId: string): Promise<DownloadTask> {
function listDownloadTasks (line 221) | function listDownloadTasks(): Promise<DownloadTask[]> {
function getCurrentConfigByKB (line 235) | function getCurrentConfigByKB(kbId: string): Promise<InitializationConfi...
function checkRemoteModel (line 249) | function checkRemoteModel(modelConfig: {
function testEmbeddingModel (line 270) | function testEmbeddingModel(modelConfig: {
function checkRerankModel (line 291) | function checkRerankModel(modelConfig: {
function testMultimodalFunction (line 311) | function testMultimodalFunction(testData: {
type TextRelationExtractionRequest (line 412) | interface TextRelationExtractionRequest {
type Node (line 418) | interface Node {
type Relation (line 423) | interface Relation {
type TextRelationExtractionResponse (line 429) | interface TextRelationExtractionResponse {
function extractTextRelations (line 435) | function extractTextRelations(request: TextRelationExtractionRequest): P...
type FabriTextRequest (line 448) | interface FabriTextRequest {
type FabriTextResponse (line 453) | interface FabriTextResponse {
function fabriText (line 458) | function fabriText(request: FabriTextRequest): Promise<FabriTextResponse> {
type FabriTagRequest (line 471) | interface FabriTagRequest {
type FabriTagResponse (line 474) | interface FabriTagResponse {
function fabriTag (line 479) | function fabriTag(request: FabriTagRequest): Promise<FabriTagResponse> {
type ModelProviderOption (line 493) | interface ModelProviderOption {
function listModelProviders (line 502) | function listModelProviders(modelType?: string): Promise<ModelProviderOp...
FILE: frontend/src/api/knowledge-base/index.ts
function listKnowledgeBases (line 4) | function listKnowledgeBases(params?: { agent_id?: string }) {
function createKnowledgeBase (line 11) | function createKnowledgeBase(data: {
function getKnowledgeBaseById (line 29) | function getKnowledgeBaseById(id: string, options?: { agent_id?: string ...
function updateKnowledgeBase (line 36) | function updateKnowledgeBase(id: string, data: { name: string; descripti...
function deleteKnowledgeBase (line 40) | function deleteKnowledgeBase(id: string) {
function copyKnowledgeBase (line 44) | function copyKnowledgeBase(data: { source_id: string; target_id?: string...
function listMoveTargets (line 49) | function listMoveTargets(sourceKbId: string) {
function moveKnowledge (line 54) | function moveKnowledge(data: {
function getKnowledgeMoveProgress (line 64) | function getKnowledgeMoveProgress(taskId: string) {
function togglePinKnowledgeBase (line 68) | function togglePinKnowledgeBase(id: string) {
function uploadKnowledgeFile (line 74) | function uploadKnowledgeFile(kbId: string, data: { file: File; tag_id?: ...
function createKnowledgeFromURL (line 84) | function createKnowledgeFromURL(kbId: string, data: { url: string; enabl...
function createManualKnowledge (line 90) | function createManualKnowledge(kbId: string, data: { title: string; cont...
function listKnowledgeFiles (line 94) | function listKnowledgeFiles(
function getKnowledgeDetails (line 114) | function getKnowledgeDetails(id: string, options?: { agent_id?: string }) {
function updateManualKnowledge (line 121) | function updateManualKnowledge(id: string, data: { title: string; conten...
function reparseKnowledge (line 125) | function reparseKnowledge(id: string) {
function delKnowledgeDetails (line 129) | function delKnowledgeDetails(id: string) {
function downKnowledgeDetails (line 133) | function downKnowledgeDetails(id: string) {
function previewKnowledgeFile (line 137) | function previewKnowledgeFile(id: string) {
function batchQueryKnowledge (line 142) | function batchQueryKnowledge(idsQueryString: string, kbId?: string, agen...
function getKnowledgeDetailsCon (line 149) | function getKnowledgeDetailsCon(id: string, page: number) {
function getChunkByIdOnly (line 154) | function getChunkByIdOnly(chunkId: string) {
function deleteGeneratedQuestion (line 159) | function deleteGeneratedQuestion(chunkId: string, questionId: string) {
function listKnowledgeTags (line 163) | function listKnowledgeTags(
function createKnowledgeBaseTag (line 171) | function createKnowledgeBaseTag(
function updateKnowledgeBaseTag (line 178) | function updateKnowledgeBaseTag(
function deleteKnowledgeBaseTag (line 186) | function deleteKnowledgeBaseTag(kbId: string, tagSeqId: number, params?:...
function updateKnowledgeTagBatch (line 191) | function updateKnowledgeTagBatch(data: { updates: Record<string, string ...
function updateFAQEntryTagBatch (line 195) | function updateFAQEntryTagBatch(kbId: string, data: { updates: Record<nu...
function listFAQEntries (line 210) | function listFAQEntries(
function upsertFAQEntries (line 218) | function upsertFAQEntries(kbId: string, data: { entries: any[]; mode: 'a...
function createFAQEntry (line 222) | function createFAQEntry(kbId: string, data: any) {
function updateFAQEntry (line 226) | function updateFAQEntry(kbId: string, entryId: number, data: any) {
type FAQEntryFieldsUpdate (line 234) | interface FAQEntryFieldsUpdate {
type FAQEntryFieldsBatchRequest (line 240) | interface FAQEntryFieldsBatchRequest {
function updateFAQEntryFieldsBatch (line 246) | function updateFAQEntryFieldsBatch(kbId: string, data: FAQEntryFieldsBat...
function deleteFAQEntries (line 250) | function deleteFAQEntries(kbId: string, ids: number[]) {
function searchFAQEntries (line 254) | function searchFAQEntries(
function exportFAQEntries (line 266) | async function exportFAQEntries(kbId: string): Promise<Blob> {
type FAQBlockedEntry (line 272) | interface FAQBlockedEntry {
type FAQSuccessEntry (line 278) | interface FAQSuccessEntry {
type FAQImportProgress (line 286) | interface FAQImportProgress {
function getFAQImportProgress (line 303) | function getFAQImportProgress(taskId: string) {
function updateFAQImportResultDisplayStatus (line 307) | function updateFAQImportResultDisplayStatus(knowledgeBaseId: string, dis...
function searchKnowledge (line 313) | function searchKnowledge(
function knowledgeSemanticSearch (line 331) | function knowledgeSemanticSearch(data: {
FILE: frontend/src/api/mcp-service.ts
type MCPService (line 3) | interface MCPService {
type MCPTool (line 32) | interface MCPTool {
type MCPResource (line 38) | interface MCPResource {
type MCPTestResult (line 45) | interface MCPTestResult {
function listMCPServices (line 53) | async function listMCPServices(): Promise<MCPService[]> {
function getMCPService (line 59) | async function getMCPService(id: string): Promise<MCPService> {
function createMCPService (line 65) | async function createMCPService(data: Partial<MCPService>): Promise<MCPS...
function updateMCPService (line 71) | async function updateMCPService(id: string, data: Partial<MCPService>): ...
function deleteMCPService (line 77) | async function deleteMCPService(id: string): Promise<void> {
function testMCPService (line 82) | async function testMCPService(id: string): Promise<MCPTestResult> {
function getMCPServiceTools (line 94) | async function getMCPServiceTools(id: string): Promise<MCPTool[]> {
function getMCPServiceResources (line 100) | async function getMCPServiceResources(id: string): Promise<MCPResource[]> {
FILE: frontend/src/api/model/index.ts
type ModelConfig (line 7) | interface ModelConfig {
function createModel (line 36) | function createModel(data: ModelConfig): Promise<ModelConfig> {
function listModels (line 54) | function listModels(type?: string): Promise<ModelConfig[]> {
function getModel (line 76) | function getModel(id: string): Promise<ModelConfig> {
function updateModel (line 94) | function updateModel(id: string, data: Partial<ModelConfig>): Promise<Mo...
function deleteModel (line 112) | function deleteModel(id: string): Promise<void> {
FILE: frontend/src/api/organization/index.ts
type Organization (line 4) | interface Organization {
type OrganizationMember (line 28) | interface OrganizationMember {
type KnowledgeBaseShare (line 39) | interface KnowledgeBaseShare {
type SharedKnowledgeBase (line 60) | interface SharedKnowledgeBase {
type SourceFromAgentInfo (line 78) | interface SourceFromAgentInfo {
type OrganizationSharedKnowledgeBaseItem (line 86) | type OrganizationSharedKnowledgeBaseItem = SharedKnowledgeBase & {
type OrganizationPreview (line 92) | interface OrganizationPreview {
type SearchableOrganizationItem (line 106) | interface SearchableOrganizationItem {
type CreateOrganizationRequest (line 120) | interface CreateOrganizationRequest {
type UpdateOrganizationRequest (line 128) | interface UpdateOrganizationRequest {
type UpdateMemberRoleRequest (line 138) | interface UpdateMemberRoleRequest {
type JoinOrganizationRequest (line 142) | interface JoinOrganizationRequest {
type ShareKnowledgeBaseRequest (line 146) | interface ShareKnowledgeBaseRequest {
type UpdateSharePermissionRequest (line 151) | interface UpdateSharePermissionRequest {
type ApiResponse (line 156) | interface ApiResponse<T> {
type ResourceCountsByOrg (line 163) | interface ResourceCountsByOrg {
type ListOrganizationsResponse (line 168) | interface ListOrganizationsResponse {
type ListMembersResponse (line 174) | interface ListMembersResponse {
type JoinRequestResponse (line 179) | interface JoinRequestResponse {
type ListJoinRequestsResponse (line 193) | interface ListJoinRequestsResponse {
type SubmitJoinRequestRequest (line 198) | interface SubmitJoinRequestRequest {
type ReviewJoinRequestRequest (line 204) | interface ReviewJoinRequestRequest {
type RequestRoleUpgradeRequest (line 210) | interface RequestRoleUpgradeRequest {
type InviteMemberRequest (line 215) | interface InviteMemberRequest {
type UserSearchResult (line 220) | interface UserSearchResult {
type ListSharesResponse (line 227) | interface ListSharesResponse {
type AgentShareResponse (line 233) | interface AgentShareResponse {
type SharedAgentInfo (line 256) | interface SharedAgentInfo {
type OrganizationSharedAgentItem (line 271) | type OrganizationSharedAgentItem = SharedAgentInfo & { is_mine: boolean }
type ListAgentSharesResponse (line 273) | interface ListAgentSharesResponse {
function createOrganization (line 283) | async function createOrganization(req: CreateOrganizationRequest): Promi...
function getOrganization (line 295) | async function getOrganization(id: string): Promise<ApiResponse<Organiza...
function listMyOrganizations (line 307) | async function listMyOrganizations(): Promise<ApiResponse<ListOrganizati...
function updateOrganization (line 319) | async function updateOrganization(id: string, req: UpdateOrganizationReq...
function deleteOrganization (line 331) | async function deleteOrganization(id: string): Promise<ApiResponse<void>> {
function joinOrganization (line 343) | async function joinOrganization(req: JoinOrganizationRequest): Promise<A...
function submitJoinRequest (line 356) | async function submitJoinRequest(req: SubmitJoinRequestRequest): Promise...
function previewOrganization (line 368) | async function previewOrganization(inviteCode: string): Promise<ApiRespo...
function searchSearchableOrganizations (line 380) | async function searchSearchableOrganizations(
function joinOrganizationById (line 403) | async function joinOrganizationById(
function leaveOrganization (line 422) | async function leaveOrganization(id: string): Promise<ApiResponse<void>> {
function requestRoleUpgrade (line 434) | async function requestRoleUpgrade(
function generateInviteCode (line 449) | async function generateInviteCode(id: string): Promise<ApiResponse<{ inv...
function listMembers (line 463) | async function listMembers(orgId: string): Promise<ApiResponse<ListMembe...
function updateMemberRole (line 475) | async function updateMemberRole(orgId: string, userId: string, req: Upda...
function removeMember (line 487) | async function removeMember(orgId: string, userId: string): Promise<ApiR...
function listJoinRequests (line 499) | async function listJoinRequests(orgId: string): Promise<ApiResponse<List...
function reviewJoinRequest (line 511) | async function reviewJoinRequest(orgId: string, requestId: string, req: ...
function shareKnowledgeBase (line 525) | async function shareKnowledgeBase(kbId: string, req: ShareKnowledgeBaseR...
function listKBShares (line 537) | async function listKBShares(kbId: string): Promise<ApiResponse<ListShare...
function updateSharePermission (line 549) | async function updateSharePermission(kbId: string, shareId: string, req:...
function removeShare (line 561) | async function removeShare(kbId: string, shareId: string): Promise<ApiRe...
function listSharedKnowledgeBases (line 573) | async function listSharedKnowledgeBases(): Promise<ApiResponse<SharedKno...
function listOrganizationSharedKnowledgeBases (line 585) | async function listOrganizationSharedKnowledgeBases(orgId: string): Prom...
function listOrgShares (line 597) | async function listOrgShares(orgId: string): Promise<ApiResponse<ListSha...
function shareAgent (line 607) | async function shareAgent(agentId: string, req: ShareKnowledgeBaseReques...
function listAgentShares (line 616) | async function listAgentShares(agentId: string): Promise<ApiResponse<Lis...
function updateAgentSharePermission (line 625) | async function updateAgentSharePermission(agentId: string, shareId: stri...
function removeAgentShare (line 634) | async function removeAgentShare(agentId: string, shareId: string): Promi...
function listSharedAgents (line 643) | async function listSharedAgents(): Promise<ApiResponse<SharedAgentInfo[]...
function listOrganizationSharedAgents (line 655) | async function listOrganizationSharedAgents(orgId: string): Promise<ApiR...
function setSharedAgentDisabledByMe (line 665) | async function setSharedAgentDisabledByMe(
function listOrgAgentShares (line 680) | async function listOrgAgentShares(orgId: string): Promise<ApiResponse<Li...
function searchUsersForInvite (line 692) | async function searchUsersForInvite(
function inviteMember (line 708) | async function inviteMember(
FILE: frontend/src/api/retrieval.ts
type RetrievalConfig (line 5) | interface RetrievalConfig {
function getTenantRetrievalConfig (line 15) | function getTenantRetrievalConfig() {
function updateTenantRetrievalConfig (line 20) | function updateTenantRetrievalConfig(config: RetrievalConfig) {
FILE: frontend/src/api/skill/index.ts
type SkillInfo (line 4) | interface SkillInfo {
function listSkills (line 10) | function listSkills() {
FILE: frontend/src/api/system/index.ts
type SystemInfo (line 3) | interface SystemInfo {
type ToolDefinition (line 16) | interface ToolDefinition {
type PlaceholderDefinition (line 22) | interface PlaceholderDefinition {
type AgentConfig (line 28) | interface AgentConfig {
type ConversationConfig (line 39) | interface ConversationConfig {
type PromptTemplate (line 61) | interface PromptTemplate {
type PromptTemplatesConfig (line 73) | interface PromptTemplatesConfig {
function getSystemInfo (line 88) | function getSystemInfo(): Promise<{ data: SystemInfo }> {
function getAgentConfig (line 92) | function getAgentConfig(): Promise<{ data: AgentConfig }> {
function updateAgentConfig (line 96) | function updateAgentConfig(config: AgentConfig): Promise<{ data: AgentCo...
function getConversationConfig (line 100) | function getConversationConfig(): Promise<{ data: ConversationConfig }> {
function updateConversationConfig (line 104) | function updateConversationConfig(config: ConversationConfig): Promise<{...
function getPromptTemplates (line 108) | function getPromptTemplates(): Promise<{ data: PromptTemplatesConfig }> {
type MinioBucketInfo (line 112) | interface MinioBucketInfo {
type ListMinioBucketsResponse (line 118) | interface ListMinioBucketsResponse {
function listMinioBuckets (line 122) | function listMinioBuckets(): Promise<{ data: ListMinioBucketsResponse }> {
type ParserEngineInfo (line 126) | interface ParserEngineInfo {
type ParserEngineConfig (line 135) | interface ParserEngineConfig {
type ParserEnginesResponse (line 154) | interface ParserEnginesResponse {
function getParserEngines (line 162) | function getParserEngines(): Promise<ParserEnginesResponse> {
function checkParserEngines (line 167) | function checkParserEngines(config: ParserEngineConfig): Promise<ParserE...
function getParserEngineConfig (line 171) | function getParserEngineConfig(): Promise<{ data: ParserEngineConfig }> {
function updateParserEngineConfig (line 175) | function updateParserEngineConfig(config: ParserEngineConfig): Promise<{...
function reconnectDocReader (line 179) | function reconnectDocReader(addr: string): Promise<ParserEnginesResponse...
type StorageEngineConfig (line 185) | interface StorageEngineConfig {
type StorageEngineStatusItem (line 215) | interface StorageEngineStatusItem {
type GetStorageEngineStatusResponse (line 221) | interface GetStorageEngineStatusResponse {
function getStorageEngineConfig (line 226) | function getStorageEngineConfig(): Promise<{ data: StorageEngineConfig }> {
function updateStorageEngineConfig (line 230) | function updateStorageEngineConfig(config: StorageEngineConfig): Promise...
function getStorageEngineStatus (line 234) | function getStorageEngineStatus(): Promise<{ data: GetStorageEngineStatu...
type StorageCheckRequest (line 238) | interface StorageCheckRequest {
type StorageCheckResponse (line 246) | interface StorageCheckResponse {
function checkStorageEngine (line 252) | function checkStorageEngine(req: StorageCheckRequest): Promise<{ data: S...
FILE: frontend/src/api/tenant/index.ts
type TenantInfo (line 7) | interface TenantInfo {
type SearchTenantsParams (line 21) | interface SearchTenantsParams {
type SearchTenantsResponse (line 29) | interface SearchTenantsResponse {
function listAllTenants (line 44) | async function listAllTenants(): Promise<{ success: boolean; data?: { it...
function searchTenants (line 59) | async function searchTenants(params: SearchTenantsParams = {}): Promise<...
FILE: frontend/src/api/web-search.ts
type WebSearchProviderConfig (line 4) | interface WebSearchProviderConfig {
type WebSearchConfig (line 14) | interface WebSearchConfig {
function getWebSearchProviders (line 28) | function getWebSearchProviders() {
function getTenantWebSearchConfig (line 33) | function getTenantWebSearchConfig() {
function updateTenantWebSearchConfig (line 38) | function updateTenantWebSearchConfig(config: WebSearchConfig) {
FILE: frontend/src/composables/useTheme.ts
type ThemeMode (line 3) | type ThemeMode = 'light' | 'dark' | 'system'
constant STORAGE_KEY (line 5) | const STORAGE_KEY = 'WeKnora_theme'
function getSystemTheme (line 12) | function getSystemTheme(): 'light' | 'dark' {
function applyTheme (line 16) | function applyTheme(mode: ThemeMode) {
function useTheme (line 21) | function useTheme() {
function initTheme (line 32) | function initTheme() {
FILE: frontend/src/stores/menu.ts
type MenuChild (line 5) | type MenuChild = Record<string, any>
type MenuItem (line 7) | interface MenuItem {
FILE: frontend/src/stores/organization.ts
function fetchOrganizations (line 64) | async function fetchOrganizations() {
function create (line 92) | async function create(name: string, description?: string) {
function update (line 115) | async function update(id: string, name?: string, description?: string) {
function remove (line 144) | async function remove(id: string) {
function preview (line 170) | async function preview(inviteCode: string) {
function join (line 194) | async function join(inviteCode: string) {
function leave (line 221) | async function leave(id: string) {
function refreshInviteCode (line 247) | async function refreshInviteCode(id: string) {
function fetchMembers (line 276) | async function fetchMembers(orgId: string) {
function changeMemberRole (line 299) | async function changeMemberRole(orgId: string, userId: string, role: 'ad...
function kickMember (line 325) | async function kickMember(orgId: string, userId: string) {
function fetchSharedKnowledgeBases (line 348) | async function fetchSharedKnowledgeBases() {
function fetchSharedAgents (line 372) | async function fetchSharedAgents() {
function setCurrentOrganization (line 388) | function setCurrentOrganization(org: Organization | null) {
function getKBPermission (line 396) | function getKBPermission(kbId: string): 'owner' | 'admin' | 'editor' | '...
function canEditKB (line 406) | function canEditKB(kbId: string, isOwner: boolean): boolean {
function canManageKB (line 415) | function canManageKB(kbId: string, isOwner: boolean): boolean {
function clearState (line 424) | function clearState() {
FILE: frontend/src/stores/settings.ts
type Settings (line 5) | interface Settings {
type AgentConfig (line 24) | interface AgentConfig {
type ConversationModels (line 31) | interface ConversationModels {
type ModelItem (line 38) | interface ModelItem {
type ModelConfig (line 51) | interface ModelConfig {
type OllamaConfig (line 59) | interface OllamaConfig {
method saveSettings (line 154) | saveSettings(settings: Settings) {
method getSettings (line 161) | getSettings(): Settings {
method getEndpoint (line 166) | getEndpoint(): string {
method getApiKey (line 171) | getApiKey(): string {
method getKnowledgeBaseId (line 176) | getKnowledgeBaseId(): string {
method toggleAgent (line 181) | toggleAgent(enabled: boolean) {
method updateAgentConfig (line 187) | updateAgentConfig(config: Partial<AgentConfig>) {
method updateConversationModels (line 192) | updateConversationModels(models: Partial<ConversationModels>) {
method updateModelConfig (line 199) | updateModelConfig(config: Partial<ModelConfig>) {
method addModel (line 205) | addModel(type: 'chat' | 'embedding' | 'rerank' | 'vllm', model: ModelIte...
method updateModel (line 222) | updateModel(type: 'chat' | 'embedding' | 'rerank' | 'vllm', modelId: str...
method deleteModel (line 238) | deleteModel(type: 'chat' | 'embedding' | 'rerank' | 'vllm', modelId: str...
method setDefaultModel (line 252) | setDefaultModel(type: 'chat' | 'embedding' | 'rerank' | 'vllm', modelId:...
method updateOllamaConfig (line 261) | updateOllamaConfig(config: Partial<OllamaConfig>) {
method selectKnowledgeBases (line 267) | selectKnowledgeBases(kbIds: string[]) {
method addKnowledgeBase (line 273) | addKnowledgeBase(kbId: string) {
method removeKnowledgeBase (line 281) | removeKnowledgeBase(kbId: string) {
method clearKnowledgeBases (line 288) | clearKnowledgeBases() {
method getSelectedKnowledgeBases (line 294) | getSelectedKnowledgeBases(): string[] {
method toggleWebSearch (line 299) | toggleWebSearch(enabled: boolean) {
method toggleMemory (line 305) | toggleMemory(enabled: boolean) {
method addFile (line 311) | addFile(fileId: string) {
method removeFile (line 319) | removeFile(fileId: string) {
method clearFiles (line 326) | clearFiles() {
method setFileKbMap (line 332) | setFileKbMap(updates: Record<string, string>) {
method removeFileKbId (line 338) | removeFileKbId(fileId: string) {
method getSelectedFiles (line 343) | getSelectedFiles(): string[] {
method selectAgent (line 348) | selectAgent(agentId: string, sourceTenantId?: string | null) {
method getSelectedAgentId (line 368) | getSelectedAgentId(): string {
FILE: frontend/src/stores/ui.ts
method openSettings (line 27) | openSettings(section?: string, subSection?: string) {
method closeSettings (line 33) | closeSettings() {
method toggleSettings (line 39) | toggleSettings() {
method openKBSettings (line 43) | openKBSettings(kbId: string, initialSection?: string) {
method openEditKB (line 51) | openEditKB(kbId: string, initialSection?: string) {
method openCreateKB (line 55) | openCreateKB(type: 'document' | 'faq' = 'document') {
method closeKBEditor (line 63) | closeKBEditor() {
method openManualEditor (line 70) | openManualEditor(options: {
method closeManualEditor (line 89) | closeManualEditor() {
method notifyManualEditorSuccess (line 98) | notifyManualEditorSuccess(payload: { kbId: string; knowledgeId: string; ...
method setSelectedTagId (line 110) | setSelectedTagId(tagId: string) {
method toggleSidebar (line 114) | toggleSidebar() {
method collapseSidebar (line 119) | collapseSidebar() {
method expandSidebar (line 124) | expandSidebar() {
FILE: frontend/src/types/tool-results.ts
type RelevanceLevel (line 8) | type RelevanceLevel = 'High Relevance' | 'Medium Relevance' | 'Low Relev...
type DisplayType (line 11) | type DisplayType =
type SearchResultItem (line 26) | interface SearchResultItem {
type ChunkItem (line 38) | interface ChunkItem {
type KnowledgeBaseItem (line 47) | interface KnowledgeBaseItem {
type GraphConfig (line 55) | interface GraphConfig {
type SearchResultsData (line 61) | interface SearchResultsData {
type ChunkDetailData (line 71) | interface ChunkDetailData {
type RelatedChunksData (line 81) | interface RelatedChunksData {
type KnowledgeBaseListData (line 90) | interface KnowledgeBaseListData {
type DocumentInfoDocument (line 97) | interface DocumentInfoDocument {
type DocumentInfoData (line 112) | interface DocumentInfoData {
type GraphQueryResultsData (line 122) | interface GraphQueryResultsData {
type ThinkingData (line 130) | interface ThinkingData {
type PlanStep (line 136) | interface PlanStep {
type PlanData (line 144) | interface PlanData {
type DatabaseQueryData (line 152) | interface DatabaseQueryData {
type WebSearchResultItem (line 161) | interface WebSearchResultItem {
type WebSearchResultsData (line 172) | interface WebSearchResultsData {
type WebFetchResultItem (line 180) | interface WebFetchResultItem {
type WebFetchResultsData (line 191) | interface WebFetchResultsData {
type GrepKnowledgeResult (line 198) | interface GrepKnowledgeResult {
type GrepResultsData (line 209) | interface GrepResultsData {
type ToolResultData (line 220) | type ToolResultData =
type ActionData (line 235) | interface ActionData {
FILE: frontend/src/utils/caret.ts
type CaretCoordinates (line 1) | interface CaretCoordinates {
function getCaretCoordinates (line 7) | function getCaretCoordinates(element: HTMLTextAreaElement, position: num...
FILE: frontend/src/utils/chatMessageShared.ts
constant STREAMING_IMAGE_PLACEHOLDER (line 3) | const STREAMING_IMAGE_PLACEHOLDER = '<span class="streaming-image-loadin...
FILE: frontend/src/utils/index.ts
type Window (line 6) | interface Window {
constant MAX_FILE_SIZE_MB (line 15) | const MAX_FILE_SIZE_MB = window.__RUNTIME_CONFIG__?.MAX_FILE_SIZE_MB
constant MAX_FILE_SIZE_BYTES (line 18) | const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;
function generateRandomString (line 20) | function generateRandomString(length: number) {
function formatStringDate (line 31) | function formatStringDate(date: any) {
constant DEFAULT_VALID_TYPES (line 43) | const DEFAULT_VALID_TYPES = new Set(["pdf", "txt", "md", "docx", "doc", ...
function kbFileTypeVerification (line 49) | function kbFileTypeVerification(file: any, silent = false, validTypes?: ...
FILE: frontend/src/utils/mermaidShared.ts
constant MERMAID_CONFIG (line 5) | const MERMAID_CONFIG = {
FILE: frontend/src/utils/request.ts
constant BASE_URL (line 9) | const BASE_URL = import.meta.env.VITE_IS_DOCKER ? "" : "http://localhost...
function getCurrentLanguage (line 23) | function getCurrentLanguage(): string {
function get (line 204) | function get(url: string) {
function getDown (line 208) | async function getDown(url: string) {
function postUpload (line 215) | function postUpload(url: string, data = {}, onUploadProgress?: (progress...
function postChat (line 225) | function postChat(url: string, data = {}) {
function post (line 234) | function post(url: string, data = {}, config?: any) {
function put (line 238) | function put(url: string, data = {}) {
function del (line 242) | function del(url: string, data?: any) {
FILE: frontend/src/utils/security.ts
constant PROVIDER_IMAGE_PLACEHOLDER (line 7) | const PROVIDER_IMAGE_PLACEHOLDER = 'data:image/gif;base64,R0lGODlhAQABAI...
function sanitizeHTML (line 98) | function sanitizeHTML(html: string): string {
function protectProviderImageSrcInHTML (line 113) | function protectProviderImageSrcInHTML(html: string): string {
function escapeHTML (line 137) | function escapeHTML(text: string): string {
function isValidURL (line 161) | function isValidURL(url: string): boolean {
function safeMarkdownToHTML (line 193) | function safeMarkdownToHTML(markdown: string): string {
function sanitizeUserInput (line 213) | function sanitizeUserInput(input: string): string {
function isValidImageURL (line 234) | function isValidImageURL(url: string): boolean {
function createSafeImage (line 249) | function createSafeImage(src: string, alt: string = '', title: string = ...
function getProtectedFileRequestHeaders (line 265) | function getProtectedFileRequestHeaders(): Record<string, string> {
function hydrateProtectedFileImages (line 296) | async function hydrateProtectedFileImages(root: ParentNode | null | unde...
FILE: frontend/src/utils/tool-icons.ts
function getToolIcon (line 46) | function getToolIcon(toolName: string): string {
function getMatchTypeIcon (line 51) | function getMatchTypeIcon(matchType: string): string {
function getToolDisplayName (line 70) | function getToolDisplayName(toolName: string): string {
FILE: frontend/vite.config.ts
function resolveVueOfficePptxEntry (line 12) | function resolveVueOfficePptxEntry(): string {
FILE: internal/agent/const.go
constant DefaultAgentTemperature (line 5) | DefaultAgentTemperature = 0.7
constant DefaultAgentMaxIterations (line 7) | DefaultAgentMaxIterations = 20
constant DefaultAgentReflectionEnabled (line 9) | DefaultAgentReflectionEnabled = false
constant DefaultUseCustomSystemPrompt (line 11) | DefaultUseCustomSystemPrompt = false
FILE: internal/agent/engine.go
constant llmPerCallTimeout (line 25) | llmPerCallTimeout = 120 * time.Second
function generateEventID (line 29) | func generateEventID(suffix string) string {
type AgentEngine (line 34) | type AgentEngine struct
method SetAppConfig (line 115) | func (e *AgentEngine) SetAppConfig(cfg *appconfig.Config) {
method SetSkillsManager (line 120) | func (e *AgentEngine) SetSkillsManager(manager *skills.Manager) {
method GetSkillsManager (line 125) | func (e *AgentEngine) GetSkillsManager() *skills.Manager {
method Execute (line 131) | func (e *AgentEngine) Execute(
method executeLoop (line 241) | func (e *AgentEngine) executeLoop(
method buildToolsForLLM (line 658) | func (e *AgentEngine) buildToolsForLLM() []chat.Tool {
method appendToolResults (line 677) | func (e *AgentEngine) appendToolResults(
method streamLLMToEventBus (line 751) | func (e *AgentEngine) streamLLMToEventBus(
method streamReflectionToEventBus (line 804) | func (e *AgentEngine) streamReflectionToEventBus(
method streamThinkingToEventBus (line 857) | func (e *AgentEngine) streamThinkingToEventBus(
method streamFinalAnswerToEventBus (line 979) | func (e *AgentEngine) streamFinalAnswerToEventBus(
method buildMessagesWithLLMContext (line 1101) | func (e *AgentEngine) buildMessagesWithLLMContext(
function listToolNames (line 49) | func listToolNames(ts []chat.Tool) []string {
function NewAgentEngine (line 58) | func NewAgentEngine(
function NewAgentEngineWithSkills (line 86) | func NewAgentEngineWithSkills(
function countTotalToolCalls (line 1092) | func countTotalToolCalls(steps []types.AgentStep) int {
FILE: internal/agent/prompts.go
function formatFileSize (line 14) | func formatFileSize(size int64) string {
function formatDocSummary (line 32) | func formatDocSummary(summary string, maxLen int) string {
type RecentDocInfo (line 49) | type RecentDocInfo struct
type SelectedDocumentInfo (line 66) | type SelectedDocumentInfo struct
type KnowledgeBaseInfo (line 75) | type KnowledgeBaseInfo struct
type PlaceholderDefinition (line 86) | type PlaceholderDefinition struct
function AvailablePlaceholders (line 94) | func AvailablePlaceholders() []PlaceholderDefinition {
function formatKnowledgeBaseList (line 109) | func formatKnowledgeBaseList(kbInfos []*KnowledgeBaseInfo) string {
function renderPromptPlaceholders (line 186) | func renderPromptPlaceholders(template string, knowledgeBases []*Knowled...
function formatSkillsMetadata (line 200) | func formatSkillsMetadata(skillsMetadata []*skills.SkillMetadata) string {
function formatSelectedDocuments (line 234) | func formatSelectedDocuments(docs []*SelectedDocumentInfo) string {
function renderPromptPlaceholdersWithStatus (line 272) | func renderPromptPlaceholdersWithStatus(
type BuildSystemPromptOptions (line 297) | type BuildSystemPromptOptions struct
function BuildSystemPrompt (line 305) | func BuildSystemPrompt(
function BuildSystemPromptWithOptions (line 315) | func BuildSystemPromptWithOptions(
function GetPureAgentSystemPrompt (line 365) | func GetPureAgentSystemPrompt(cfg *config.Config) string {
function GetProgressiveRAGSystemPrompt (line 377) | func GetProgressiveRAGSystemPrompt(cfg *config.Config) string {
FILE: internal/agent/skills/integration_test.go
function TestExampleSkillsIntegration (line 11) | func TestExampleSkillsIntegration(t *testing.T) {
function TestManagerWithExampleSkills (line 93) | func TestManagerWithExampleSkills(t *testing.T) {
function truncate (line 156) | func truncate(s string, maxLen int) string {
FILE: internal/agent/skills/loader.go
type Loader (line 13) | type Loader struct
method DiscoverSkills (line 31) | func (l *Loader) DiscoverSkills() ([]*SkillMetadata, error) {
method discoverInDirectory (line 47) | func (l *Loader) discoverInDirectory(dir string) ([]*SkillMetadata, er...
method LoadSkillInstructions (line 108) | func (l *Loader) LoadSkillInstructions(skillName string) (*Skill, erro...
method loadSkillFromDirectory (line 129) | func (l *Loader) loadSkillFromDirectory(dir, skillName string) (*Skill...
method loadSkillFile (line 177) | func (l *Loader) loadSkillFile(basePath, filePath string) (*Skill, err...
method LoadSkillFile (line 196) | func (l *Loader) LoadSkillFile(skillName, relativePath string) (*Skill...
method ListSkillFiles (line 246) | func (l *Loader) ListSkillFiles(skillName string) ([]string, error) {
method GetSkillByName (line 285) | func (l *Loader) GetSkillByName(name string) (*Skill, bool) {
method GetSkillBasePath (line 291) | func (l *Loader) GetSkillBasePath(skillName string) (string, error) {
method Reload (line 305) | func (l *Loader) Reload() ([]*SkillMetadata, error) {
function NewLoader (line 21) | func NewLoader(skillDirs []string) *Loader {
FILE: internal/agent/skills/manager.go
type Manager (line 13) | type Manager struct
method IsEnabled (line 52) | func (m *Manager) IsEnabled() bool {
method Initialize (line 58) | func (m *Manager) Initialize(ctx context.Context) error {
method filterAllowedSkills (line 81) | func (m *Manager) filterAllowedSkills(metadata []*SkillMetadata) []*Sk...
method GetAllMetadata (line 102) | func (m *Manager) GetAllMetadata() []*SkillMetadata {
method LoadSkill (line 117) | func (m *Manager) LoadSkill(ctx context.Context, skillName string) (*S...
method isSkillAllowed (line 131) | func (m *Manager) isSkillAllowed(skillName string) bool {
method ReadSkillFile (line 144) | func (m *Manager) ReadSkillFile(ctx context.Context, skillName, filePa...
method ListSkillFiles (line 162) | func (m *Manager) ListSkillFiles(ctx context.Context, skillName string...
method ExecuteScript (line 175) | func (m *Manager) ExecuteScript(ctx context.Context, skillName, script...
method GetSkillInfo (line 218) | func (m *Manager) GetSkillInfo(ctx context.Context, skillName string) ...
method Reload (line 256) | func (m *Manager) Reload(ctx context.Context) error {
method Cleanup (line 278) | func (m *Manager) Cleanup(ctx context.Context) error {
type ManagerConfig (line 28) | type ManagerConfig struct
function NewManager (line 35) | func NewManager(config *ManagerConfig, sandboxMgr sandbox.Manager) *Mana...
type SkillInfo (line 247) | type SkillInfo struct
FILE: internal/agent/skills/skill.go
constant MaxNameLength (line 18) | MaxNameLength = 64
constant MaxDescriptionLength (line 19) | MaxDescriptionLength = 1024
constant SkillFileName (line 20) | SkillFileName = "SKILL.md"
type Skill (line 37) | type Skill struct
method Validate (line 68) | func (s *Skill) Validate() error {
method ToMetadata (line 103) | func (s *Skill) ToMetadata() *SkillMetadata {
type SkillMetadata (line 53) | type SkillMetadata struct
type SkillFile (line 60) | type SkillFile struct
function ParseSkillFile (line 113) | func ParseSkillFile(content string) (*Skill, error) {
function ParseSkillMetadata (line 177) | func ParseSkillMetadata(content string) (*SkillMetadata, error) {
function IsScript (line 186) | func IsScript(path string) bool {
function GetScriptLanguage (line 202) | func GetScriptLanguage(path string) string {
FILE: internal/agent/skills/skills_test.go
function TestParseSkillFile (line 10) | func TestParseSkillFile(t *testing.T) {
function TestSkillValidation (line 49) | func TestSkillValidation(t *testing.T) {
function containsString (line 123) | func containsString(s, substr string) bool {
function containsSubstring (line 127) | func containsSubstring(s, substr string) bool {
function TestLoaderDiscoverSkills (line 136) | func TestLoaderDiscoverSkills(t *testing.T) {
function TestLoaderLoadSkillInstructions (line 181) | func TestLoaderLoadSkillInstructions(t *testing.T) {
function TestLoaderLoadSkillFile (line 234) | func TestLoaderLoadSkillFile(t *testing.T) {
function TestManagerIntegration (line 309) | func TestManagerIntegration(t *testing.T) {
function TestIsScript (line 370) | func TestIsScript(t *testing.T) {
FILE: internal/agent/tools/data_analysis.go
type DataAnalysisInput (line 22) | type DataAnalysisInput struct
type DataAnalysisTool (line 27) | type DataAnalysisTool struct
method recordCreatedTable (line 53) | func (t *DataAnalysisTool) recordCreatedTable(tableName string) bool {
method Cleanup (line 64) | func (t *DataAnalysisTool) Cleanup(ctx context.Context) {
method Execute (line 87) | func (t *DataAnalysisTool) Execute(ctx context.Context, args json.RawM...
method executeSingleQuery (line 177) | func (t *DataAnalysisTool) executeSingleQuery(ctx context.Context, sql...
method formatQueryResults (line 228) | func (t *DataAnalysisTool) formatQueryResults(results []map[string]str...
method LoadFromCSV (line 281) | func (t *DataAnalysisTool) LoadFromCSV(ctx context.Context, filename s...
method LoadFromExcel (line 314) | func (t *DataAnalysisTool) LoadFromExcel(ctx context.Context, filename...
method LoadFromKnowledge (line 345) | func (t *DataAnalysisTool) LoadFromKnowledge(ctx context.Context, know...
method LoadFromKnowledgeID (line 383) | func (t *DataAnalysisTool) LoadFromKnowledgeID(ctx context.Context, kn...
method LoadFromTable (line 404) | func (t *DataAnalysisTool) LoadFromTable(ctx context.Context, tableNam...
method TableName (line 470) | func (t *DataAnalysisTool) TableName(knowledge *types.Knowledge) string {
function NewDataAnalysisTool (line 36) | func NewDataAnalysisTool(
type TableSchema (line 258) | type TableSchema struct
method Description (line 475) | func (t *TableSchema) Description() string {
type ColumnInfo (line 266) | type ColumnInfo struct
FILE: internal/agent/tools/data_schema.go
type DataSchemaInput (line 19) | type DataSchemaInput struct
type DataSchemaTool (line 23) | type DataSchemaTool struct
method Execute (line 43) | func (t *DataSchemaTool) Execute(ctx context.Context, args json.RawMes...
function NewDataSchemaTool (line 30) | func NewDataSchemaTool(knowledgeService interfaces.KnowledgeService, chu...
FILE: internal/agent/tools/database_query.go
type DatabaseQueryInput (line 100) | type DatabaseQueryInput struct
type DatabaseQueryTool (line 105) | type DatabaseQueryTool struct
method Execute (line 119) | func (t *DatabaseQueryTool) Execute(ctx context.Context, args json.Raw...
method validateAndSecureSQL (line 257) | func (t *DatabaseQueryTool) validateAndSecureSQL(sqlQuery string, tena...
method formatQueryResults (line 282) | func (t *DatabaseQueryTool) formatQueryResults(
function NewDatabaseQueryTool (line 111) | func NewDatabaseQueryTool(db *gorm.DB) *DatabaseQueryTool {
FILE: internal/agent/tools/definitions.go
constant maxFunctionNameLength (line 5) | maxFunctionNameLength = 64
constant ToolThinking (line 9) | ToolThinking = "thinking"
constant ToolTodoWrite (line 10) | ToolTodoWrite = "todo_write"
constant ToolGrepChunks (line 11) | ToolGrepChunks = "grep_chunks"
constant ToolKnowledgeSearch (line 12) | ToolKnowledgeSearch = "knowledge_search"
constant ToolListKnowledgeChunks (line 13) | ToolListKnowledgeChunks = "list_knowledge_chunks"
constant ToolQueryKnowledgeGraph (line 14) | ToolQueryKnowledgeGraph = "query_knowledge_graph"
constant ToolGetDocumentInfo (line 15) | ToolGetDocumentInfo = "get_document_info"
constant ToolDatabaseQuery (line 16) | ToolDatabaseQuery = "database_query"
constant ToolDataAnalysis (line 17) | ToolDataAnalysis = "data_analysis"
constant ToolDataSchema (line 18) | ToolDataSchema = "data_schema"
constant ToolWebSearch (line 19) | ToolWebSearch = "web_search"
constant ToolWebFetch (line 20) | ToolWebFetch = "web_fetch"
constant ToolFinalAnswer (line 21) | ToolFinalAnswer = "final_answer"
constant ToolExecuteSkillScript (line 23) | ToolExecuteSkillScript = "execute_skill_script"
constant ToolReadSkill (line 24) | ToolReadSkill = "read_skill"
type AvailableTool (line 28) | type AvailableTool struct
function AvailableToolDefinitions (line 36) | func AvailableToolDefinitions() []AvailableTool {
function DefaultAllowedTools (line 55) | func DefaultAllowedTools() []string {
FILE: internal/agent/tools/final_answer.go
type FinalAnswerInput (line 45) | type FinalAnswerInput struct
type FinalAnswerTool (line 50) | type FinalAnswerTool struct
method Execute (line 62) | func (t *FinalAnswerTool) Execute(ctx context.Context, args json.RawMe...
function NewFinalAnswerTool (line 55) | func NewFinalAnswerTool() *FinalAnswerTool {
FILE: internal/agent/tools/get_document_info.go
type GetDocumentInfoInput (line 48) | type GetDocumentInfoInput struct
type GetDocumentInfoTool (line 53) | type GetDocumentInfoTool struct
method Execute (line 75) | func (t *GetDocumentInfoTool) Execute(ctx context.Context, args json.R...
function NewGetDocumentInfoTool (line 61) | func NewGetDocumentInfoTool(
function formatSource (line 260) | func formatSource(knowledgeType, source string) string {
function formatFileSize (line 273) | func formatFileSize(size int64) string {
function formatParseStatus (line 289) | func formatParseStatus(status string) string {
FILE: internal/agent/tools/grep_chunks.go
type GrepChunksInput (line 87) | type GrepChunksInput struct
type GrepChunksTool (line 95) | type GrepChunksTool struct
method Execute (line 111) | func (t *GrepChunksTool) Execute(ctx context.Context, args json.RawMes...
method searchChunks (line 269) | func (t *GrepChunksTool) searchChunks(
method formatOutput (line 343) | func (t *GrepChunksTool) formatOutput(
method aggregateByKnowledge (line 403) | func (t *GrepChunksTool) aggregateByKnowledge(results []chunkWithTitle...
method countPatternOccurrences (line 481) | func (t *GrepChunksTool) countPatternOccurrences(content string, patte...
method deduplicateChunks (line 516) | func (t *GrepChunksTool) deduplicateChunks(ctx context.Context, result...
method buildContentSignature (line 574) | func (t *GrepChunksTool) buildContentSignature(content string) string {
method scoreChunks (line 579) | func (t *GrepChunksTool) scoreChunks(
method calculateMatchScore (line 595) | func (t *GrepChunksTool) calculateMatchScore(content string, patterns ...
method applyMMR (line 633) | func (t *GrepChunksTool) applyMMR(
method tokenizeSimple (line 715) | func (t *GrepChunksTool) tokenizeSimple(text string) map[string]struct...
method jaccard (line 720) | func (t *GrepChunksTool) jaccard(a, b map[string]struct{}) float64 {
function NewGrepChunksTool (line 102) | func NewGrepChunksTool(db *gorm.DB, searchTargets types.SearchTargets) *...
type chunkWithTitle (line 259) | type chunkWithTitle struct
type knowledgeAggregation (line 392) | type knowledgeAggregation struct
function countOccurrences (line 498) | func countOccurrences(text string, pattern string) int {
FILE: internal/agent/tools/knowledge_search.go
type KnowledgeSearchInput (line 106) | type KnowledgeSearchInput struct
type searchResultWithMeta (line 112) | type searchResultWithMeta struct
type KnowledgeSearchTool (line 121) | type KnowledgeSearchTool struct
method Execute (line 155) | func (t *KnowledgeSearchTool) Execute(ctx context.Context, args json.R...
method getKnowledgeBaseTypes (line 410) | func (t *KnowledgeSearchTool) getKnowledgeBaseTypes(ctx context.Contex...
method concurrentSearchByTargets (line 437) | func (t *KnowledgeSearchTool) concurrentSearchByTargets(
method rerankResults (line 570) | func (t *KnowledgeSearchTool) rerankResults(
method getFAQMetadata (line 655) | func (t *KnowledgeSearchTool) getFAQMetadata(
method rerankWithLLM (line 689) | func (t *KnowledgeSearchTool) rerankWithLLM(
method parseScoresFromResponse (line 857) | func (t *KnowledgeSearchTool) parseScoresFromResponse(responseText str...
method rerankWithModel (line 927) | func (t *KnowledgeSearchTool) rerankWithModel(
method deduplicateResults (line 966) | func (t *KnowledgeSearchTool) deduplicateResults(results []*searchResu...
method buildContentSignature (line 1034) | func (t *KnowledgeSearchTool) buildContentSignature(content string) st...
method formatOutput (line 1039) | func (t *KnowledgeSearchTool) formatOutput(
method getEnrichedPassage (line 1313) | func (t *KnowledgeSearchTool) getEnrichedPassage(ctx context.Context, ...
method compositeScore (line 1359) | func (t *KnowledgeSearchTool) compositeScore(
method clampFloat (line 1393) | func (t *KnowledgeSearchTool) clampFloat(v, minV, maxV float64) float64 {
method applyMMR (line 1398) | func (t *KnowledgeSearchTool) applyMMR(
method tokenizeSimple (line 1475) | func (t *KnowledgeSearchTool) tokenizeSimple(text string) map[string]s...
method jaccard (line 1480) | func (t *KnowledgeSearchTool) jaccard(a, b map[string]struct{}) float64 {
function NewKnowledgeSearchTool (line 133) | func NewKnowledgeSearchTool(
type chunkRange (line 1307) | type chunkRange struct
FILE: internal/agent/tools/list_knowledge_chunks.go
type ListKnowledgeChunksInput (line 59) | type ListKnowledgeChunksInput struct
type ListKnowledgeChunksTool (line 66) | type ListKnowledgeChunksTool struct
method Execute (line 88) | func (t *ListKnowledgeChunksTool) Execute(ctx context.Context, args js...
method lookupKnowledgeTitle (line 228) | func (t *ListKnowledgeChunksTool) lookupKnowledgeTitle(ctx context.Con...
method buildOutput (line 240) | func (t *ListKnowledgeChunksTool) buildOutput(
function NewListKnowledgeChunksTool (line 74) | func NewListKnowledgeChunksTool(
function summarizeContent (line 309) | func summarizeContent(content string) string {
FILE: internal/agent/tools/mcp_tool.go
type MCPTool (line 18) | type MCPTool struct
method Name (line 38) | func (t *MCPTool) Name() string {
method Description (line 62) | func (t *MCPTool) Description() string {
method Parameters (line 71) | func (t *MCPTool) Parameters() json.RawMessage {
method Execute (line 83) | func (t *MCPTool) Execute(ctx context.Context, args json.RawMessage) (...
function NewMCPTool (line 25) | func NewMCPTool(service *types.MCPService, mcpTool *types.MCPTool, mcpMa...
function extractContentText (line 160) | func extractContentText(content []mcp.ContentItem) string {
function sanitizeName (line 197) | func sanitizeName(name string) string {
function RegisterMCPTools (line 215) | func RegisterMCPTools(
function GetMCPToolsInfo (line 282) | func GetMCPToolsInfo(
function SerializeMCPToolResult (line 320) | func SerializeMCPToolResult(result *types.ToolResult) (string, error) {
FILE: internal/agent/tools/query_knowledge_graph.go
type QueryKnowledgeGraphInput (line 58) | type QueryKnowledgeGraphInput struct
type QueryKnowledgeGraphTool (line 64) | type QueryKnowledgeGraphTool struct
method Execute (line 78) | func (t *QueryKnowledgeGraphTool) Execute(ctx context.Context, args js...
function NewQueryKnowledgeGraphTool (line 70) | func NewQueryKnowledgeGraphTool(knowledgeService interfaces.KnowledgeBas...
function buildGraphVisualizationData (line 362) | func buildGraphVisualizationData(
FILE: internal/agent/tools/registry.go
type ToolRegistry (line 13) | type ToolRegistry struct
method RegisterTool (line 27) | func (r *ToolRegistry) RegisterTool(tool types.Tool) {
method GetTool (line 36) | func (r *ToolRegistry) GetTool(name string) (types.Tool, error) {
method ListTools (line 45) | func (r *ToolRegistry) ListTools() []string {
method GetFunctionDefinitions (line 54) | func (r *ToolRegistry) GetFunctionDefinitions() []types.FunctionDefini...
method ExecuteTool (line 67) | func (r *ToolRegistry) ExecuteTool(
method Cleanup (line 112) | func (r *ToolRegistry) Cleanup(ctx context.Context) {
function NewToolRegistry (line 18) | func NewToolRegistry() *ToolRegistry {
FILE: internal/agent/tools/sequentialthinking.go
type SequentialThinkingTool (line 133) | type SequentialThinkingTool struct
method Execute (line 162) | func (t *SequentialThinkingTool) Execute(ctx context.Context, args jso...
method validate (line 242) | func (t *SequentialThinkingTool) validate(data SequentialThinkingInput...
type SequentialThinkingInput (line 140) | type SequentialThinkingInput struct
function NewSequentialThinkingTool (line 153) | func NewSequentialThinkingTool() *SequentialThinkingTool {
FILE: internal/agent/tools/skill_execute.go
type ExecuteSkillScriptInput (line 43) | type ExecuteSkillScriptInput struct
type ExecuteSkillScriptTool (line 51) | type ExecuteSkillScriptTool struct
method Execute (line 65) | func (t *ExecuteSkillScriptTool) Execute(ctx context.Context, args jso...
method Cleanup (line 188) | func (t *ExecuteSkillScriptTool) Cleanup(ctx context.Context) error {
function NewExecuteSkillScriptTool (line 57) | func NewExecuteSkillScriptTool(skillManager *skills.Manager) *ExecuteSki...
FILE: internal/agent/tools/skill_read.go
type ReadSkillInput (line 38) | type ReadSkillInput struct
type ReadSkillTool (line 44) | type ReadSkillTool struct
method Execute (line 58) | func (t *ReadSkillTool) Execute(ctx context.Context, args json.RawMess...
method Cleanup (line 163) | func (t *ReadSkillTool) Cleanup(ctx context.Context) error {
function NewReadSkillTool (line 50) | func NewReadSkillTool(skillManager *skills.Manager) *ReadSkillTool {
FILE: internal/agent/tools/todo_write.go
type TodoWriteTool (line 140) | type TodoWriteTool struct
method Execute (line 165) | func (t *TodoWriteTool) Execute(ctx context.Context, args json.RawMess...
type TodoWriteInput (line 145) | type TodoWriteInput struct
type PlanStep (line 151) | type PlanStep struct
function NewTodoWriteTool (line 158) | func NewTodoWriteTool() *TodoWriteTool {
function getStringField (line 203) | func getStringField(m map[string]interface{}, key string) string {
function getStringArrayField (line 211) | func getStringArrayField(m map[string]interface{}, key string) []string {
function generatePlanOutput (line 229) | func generatePlanOutput(task string, steps []PlanStep) string {
function formatPlanStep (line 301) | func formatPlanStep(index int, step PlanStep) string {
FILE: internal/agent/tools/tool.go
type BaseTool (line 11) | type BaseTool struct
method Name (line 27) | func (t *BaseTool) Name() string {
method Description (line 32) | func (t *BaseTool) Description() string {
method Parameters (line 37) | func (t *BaseTool) Parameters() json.RawMessage {
function NewBaseTool (line 18) | func NewBaseTool(name, description string, schema json.RawMessage) BaseT...
type ToolExecutor (line 42) | type ToolExecutor interface
function GetRelevanceLevel (line 52) | func GetRelevanceLevel(score float64) string {
function FormatMatchType (line 66) | func FormatMatchType(mt types.MatchType) string {
FILE: internal/agent/tools/web_fetch.go
constant webFetchTimeout (line 26) | webFetchTimeout = 60 * time.Second
constant webFetchMaxChars (line 27) | webFetchMaxChars = 100000
type WebFetchInput (line 47) | type WebFetchInput struct
type WebFetchItem (line 52) | type WebFetchItem struct
type webFetchParams (line 58) | type webFetchParams struct
type validatedParams (line 65) | type validatedParams struct
type webFetchItemResult (line 74) | type webFetchItemResult struct
type WebFetchTool (line 81) | type WebFetchTool struct
method Execute (line 101) | func (t *WebFetchTool) Execute(ctx context.Context, args json.RawMessa...
method parseParams (line 239) | func (t *WebFetchTool) parseParams(item interface{}) webFetchParams {
method validateAndResolve (line 254) | func (t *WebFetchTool) validateAndResolve(p webFetchParams) (*validate...
method executeFetch (line 310) | func (t *WebFetchTool) executeFetch(
method normalizeGitHubURL (line 353) | func (t *WebFetchTool) normalizeGitHubURL(source string) string {
method processWithLLM (line 362) | func (t *WebFetchTool) processWithLLM(ctx context.Context, params webF...
method buildOutputText (line 397) | func (t *WebFetchTool) buildOutputText(params webFetchParams, content ...
method fetchHTMLContent (line 416) | func (t *WebFetchTool) fetchHTMLContent(ctx context.Context, vp *valid...
method fetchWithChromedp (line 438) | func (t *WebFetchTool) fetchWithChromedp(ctx context.Context, vp *vali...
method fetchWithHTTP (line 481) | func (t *WebFetchTool) fetchWithHTTP(ctx context.Context, vp *validate...
method fetchWithTimeout (line 502) | func (t *WebFetchTool) fetchWithTimeout(ctx context.Context, vp *valid...
method convertHTMLToText (line 527) | func (t *WebFetchTool) convertHTMLToText(html string) string {
method processNode (line 546) | func (t *WebFetchTool) processNode(s *goquery.Selection, markdown *str...
method basicTextExtraction (line 656) | func (t *WebFetchTool) basicTextExtraction(html string) string {
function NewWebFetchTool (line 88) | func NewWebFetchTool(chatModel chat.Chat) *WebFetchTool {
FILE: internal/agent/tools/web_search.go
type WebSearchInput (line 72) | type WebSearchInput struct
type WebSearchTool (line 77) | type WebSearchTool struct
method Execute (line 111) | func (t *WebSearchTool) Execute(ctx context.Context, args json.RawMess...
function NewWebSearchTool (line 88) | func NewWebSearchTool(
FILE: internal/application/repository/agent_share.go
type agentShareRepository (line 18) | type agentShareRepository struct
method Create (line 28) | func (r *agentShareRepository) Create(ctx context.Context, share *type...
method GetByID (line 41) | func (r *agentShareRepository) GetByID(ctx context.Context, id string)...
method GetByAgentAndOrg (line 54) | func (r *agentShareRepository) GetByAgentAndOrg(ctx context.Context, a...
method Update (line 69) | func (r *agentShareRepository) Update(ctx context.Context, share *type...
method Delete (line 75) | func (r *agentShareRepository) Delete(ctx context.Context, id string) ...
method DeleteByAgentIDAndSourceTenant (line 80) | func (r *agentShareRepository) DeleteByAgentIDAndSourceTenant(ctx cont...
method DeleteByOrganizationID (line 87) | func (r *agentShareRepository) DeleteByOrganizationID(ctx context.Cont...
method ListByAgent (line 92) | func (r *agentShareRepository) ListByAgent(ctx context.Context, agentI...
method ListByOrganization (line 106) | func (r *agentShareRepository) ListByOrganization(ctx context.Context,...
method ListByOrganizations (line 122) | func (r *agentShareRepository) ListByOrganizations(ctx context.Context...
method CountByOrganizations (line 141) | func (r *agentShareRepository) CountByOrganizations(ctx context.Contex...
method ListSharedAgentsForUser (line 170) | func (r *agentShareRepository) ListSharedAgentsForUser(ctx context.Con...
method GetShareByAgentIDForUser (line 189) | func (r *agentShareRepository) GetShareByAgentIDForUser(ctx context.Co...
function NewAgentShareRepository (line 23) | func NewAgentShareRepository(db *gorm.DB) interfaces.AgentShareRepository {
FILE: internal/application/repository/chunk.go
type chunkRepository (line 16) | type chunkRepository struct
method CreateChunks (line 26) | func (r *chunkRepository) CreateChunks(ctx context.Context, chunks []*...
method GetChunkByID (line 36) | func (r *chunkRepository) GetChunkByID(ctx context.Context, tenantID u...
method GetChunkByIDOnly (line 48) | func (r *chunkRepository) GetChunkByIDOnly(ctx context.Context, id str...
method GetChunkBySeqID (line 60) | func (r *chunkRepository) GetChunkBySeqID(ctx context.Context, tenantI...
method ListChunksByID (line 72) | func (r *chunkRepository) ListChunksByID(
method ListChunksByIDOnly (line 85) | func (r *chunkRepository) ListChunksByIDOnly(ctx context.Context, ids ...
method ListChunksBySeqID (line 97) | func (r *chunkRepository) ListChunksBySeqID(
method ListChunksByKnowledgeID (line 113) | func (r *chunkRepository) ListChunksByKnowledgeID(
method ListPagedChunksByKnowledgeID (line 127) | func (r *chunkRepository) ListPagedChunksByKnowledgeID(
method ListChunkByParentID (line 235) | func (r *chunkRepository) ListChunkByParentID(
method ListChunksByParentIDs (line 249) | func (r *chunkRepository) ListChunksByParentIDs(
method UpdateChunk (line 269) | func (r *chunkRepository) UpdateChunk(ctx context.Context, chunk *type...
method UpdateChunks (line 291) | func (r *chunkRepository) UpdateChunks(ctx context.Context, chunks []*...
method DeleteChunk (line 397) | func (r *chunkRepository) DeleteChunk(ctx context.Context, tenantID ui...
method DeleteChunks (line 403) | func (r *chunkRepository) DeleteChunks(ctx context.Context, tenantID u...
method DeleteChunksByKnowledgeID (line 421) | func (r *chunkRepository) DeleteChunksByKnowledgeID(ctx context.Contex...
method DeleteByKnowledgeList (line 428) | func (r *chunkRepository) DeleteByKnowledgeList(ctx context.Context, t...
method MoveChunksByKnowledgeID (line 435) | func (r *chunkRepository) MoveChunksByKnowledgeID(ctx context.Context,...
method DeleteChunksByTagID (line 443) | func (r *chunkRepository) DeleteChunksByTagID(ctx context.Context, ten...
method CountChunksByKnowledgeBaseID (line 489) | func (r *chunkRepository) CountChunksByKnowledgeBaseID(
method DeleteUnindexedChunks (line 502) | func (r *chunkRepository) DeleteUnindexedChunks(
method ListAllFAQChunksByKnowledgeID (line 525) | func (r *chunkRepository) ListAllFAQChunksByKnowledgeID(
method ListAllFAQChunksWithMetadataByKnowledgeBaseID (line 566) | func (r *chunkRepository) ListAllFAQChunksWithMetadataByKnowledgeBaseID(
method ListAllFAQChunksForExport (line 607) | func (r *chunkRepository) ListAllFAQChunksForExport(
method UpdateChunkFlagsBatch (line 651) | func (r *chunkRepository) UpdateChunkFlagsBatch(
method UpdateChunkFieldsByTagID (line 731) | func (r *chunkRepository) UpdateChunkFieldsByTagID(
method FAQChunkDiff (line 817) | func (r *chunkRepository) FAQChunkDiff(
function NewChunkRepository (line 21) | func NewChunkRepository(db *gorm.DB) interfaces.ChunkRepository {
FILE: internal/application/repository/custom_agent.go
type customAgentRepository (line 16) | type customAgentRepository struct
method CreateAgent (line 26) | func (r *customAgentRepository) CreateAgent(ctx context.Context, agent...
method GetAgentByID (line 31) | func (r *customAgentRepository) GetAgentByID(ctx context.Context, id s...
method ListAgentsByTenantID (line 43) | func (r *customAgentRepository) ListAgentsByTenantID(ctx context.Conte...
method UpdateAgent (line 55) | func (r *customAgentRepository) UpdateAgent(ctx context.Context, agent...
method DeleteAgent (line 60) | func (r *customAgentRepository) DeleteAgent(ctx context.Context, id st...
function NewCustomAgentRepository (line 21) | func NewCustomAgentRepository(db *gorm.DB) interfaces.CustomAgentReposit...
FILE: internal/application/repository/kbshare.go
type kbShareRepository (line 18) | type kbShareRepository struct
method Create (line 28) | func (r *kbShareRepository) Create(ctx context.Context, share *types.K...
method GetByID (line 43) | func (r *kbShareRepository) GetByID(ctx context.Context, id string) (*...
method GetByKBAndOrg (line 59) | func (r *kbShareRepository) GetByKBAndOrg(ctx context.Context, kbID st...
method Update (line 75) | func (r *kbShareRepository) Update(ctx context.Context, share *types.K...
method Delete (line 82) | func (r *kbShareRepository) Delete(ctx context.Context, id string) err...
method DeleteByKnowledgeBaseID (line 87) | func (r *kbShareRepository) DeleteByKnowledgeBaseID(ctx context.Contex...
method DeleteByOrganizationID (line 92) | func (r *kbShareRepository) DeleteByOrganizationID(ctx context.Context...
method ListByKnowledgeBase (line 97) | func (r *kbShareRepository) ListByKnowledgeBase(ctx context.Context, k...
method ListByOrganization (line 113) | func (r *kbShareRepository) ListByOrganization(ctx context.Context, or...
method ListByOrganizations (line 130) | func (r *kbShareRepository) ListByOrganizations(ctx context.Context, o...
method ListSharedKBsForUser (line 150) | func (r *kbShareRepository) ListSharedKBsForUser(ctx context.Context, ...
method CountSharesByKnowledgeBaseID (line 172) | func (r *kbShareRepository) CountSharesByKnowledgeBaseID(ctx context.C...
method CountSharesByKnowledgeBaseIDs (line 184) | func (r *kbShareRepository) CountSharesByKnowledgeBaseIDs(ctx context....
method CountByOrganizations (line 213) | func (r *kbShareRepository) CountByOrganizations(ctx context.Context, ...
function NewKBShareRepository (line 23) | func NewKBShareRepository(db *gorm.DB) interfaces.KBShareRepository {
FILE: internal/application/repository/knowledge.go
type knowledgeRepository (line 19) | type knowledgeRepository struct
method CreateKnowledge (line 29) | func (r *knowledgeRepository) CreateKnowledge(ctx context.Context, kno...
method GetKnowledgeByID (line 35) | func (r *knowledgeRepository) GetKnowledgeByID(
method GetKnowledgeByIDOnly (line 51) | func (r *knowledgeRepository) GetKnowledgeByIDOnly(ctx context.Context...
method ListKnowledgeByKnowledgeBaseID (line 63) | func (r *knowledgeRepository) ListKnowledgeByKnowledgeBaseID(
method ListPagedKnowledgeByKnowledgeBaseID (line 75) | func (r *knowledgeRepository) ListPagedKnowledgeByKnowledgeBaseID(
method UpdateKnowledge (line 141) | func (r *knowledgeRepository) UpdateKnowledge(ctx context.Context, kno...
method UpdateKnowledgeBatch (line 147) | func (r *knowledgeRepository) UpdateKnowledgeBatch(ctx context.Context...
method DeleteKnowledge (line 155) | func (r *knowledgeRepository) DeleteKnowledge(ctx context.Context, ten...
method DeleteKnowledgeList (line 160) | func (r *knowledgeRepository) DeleteKnowledgeList(ctx context.Context,...
method GetKnowledgeBatch (line 165) | func (r *knowledgeRepository) GetKnowledgeBatch(
method CheckKnowledgeExists (line 178) | func (r *knowledgeRepository) CheckKnowledgeExists(
method AminusB (line 247) | func (r *knowledgeRepository) AminusB(
method UpdateKnowledgeColumn (line 266) | func (r *knowledgeRepository) UpdateKnowledgeColumn(
method CountKnowledgeByKnowledgeBaseID (line 277) | func (r *knowledgeRepository) CountKnowledgeByKnowledgeBaseID(
method CountKnowledgeByStatus (line 290) | func (r *knowledgeRepository) CountKnowledgeByStatus(
method SearchKnowledge (line 316) | func (r *knowledgeRepository) SearchKnowledge(
method SearchKnowledgeInScopes (line 418) | func (r *knowledgeRepository) SearchKnowledgeInScopes(
method ListIDsByTagID (line 523) | func (r *knowledgeRepository) ListIDsByTagID(
function NewKnowledgeRepository (line 24) | func NewKnowledgeRepository(db *gorm.DB) interfaces.KnowledgeRepository {
FILE: internal/application/repository/knowledgebase.go
type knowledgeBaseRepository (line 16) | type knowledgeBaseRepository struct
method CreateKnowledgeBase (line 26) | func (r *knowledgeBaseRepository) CreateKnowledgeBase(ctx context.Cont...
method GetKnowledgeBaseByID (line 31) | func (r *knowledgeBaseRepository) GetKnowledgeBaseByID(ctx context.Con...
method GetKnowledgeBaseByIDAndTenant (line 43) | func (r *knowledgeBaseRepository) GetKnowledgeBaseByIDAndTenant(ctx co...
method GetKnowledgeBaseByIDs (line 55) | func (r *knowledgeBaseRepository) GetKnowledgeBaseByIDs(ctx context.Co...
method ListKnowledgeBases (line 67) | func (r *knowledgeBaseRepository) ListKnowledgeBases(ctx context.Conte...
method ListKnowledgeBasesByTenantID (line 76) | func (r *knowledgeBaseRepository) ListKnowledgeBasesByTenantID(
method TogglePinKnowledgeBase (line 88) | func (r *knowledgeBaseRepository) TogglePinKnowledgeBase(ctx context.C...
method UpdateKnowledgeBase (line 116) | func (r *knowledgeBaseRepository) UpdateKnowledgeBase(ctx context.Cont...
method DeleteKnowledgeBase (line 121) | func (r *knowledgeBaseRepository) DeleteKnowledgeBase(ctx context.Cont...
function NewKnowledgeBaseRepository (line 21) | func NewKnowledgeBaseRepository(db *gorm.DB) interfaces.KnowledgeBaseRep...
FILE: internal/application/repository/mcp_service.go
type mcpServiceRepository (line 13) | type mcpServiceRepository struct
method Create (line 23) | func (r *mcpServiceRepository) Create(ctx context.Context, service *ty...
method GetByID (line 29) | func (r *mcpServiceRepository) GetByID(ctx context.Context, tenantID u...
method List (line 47) | func (r *mcpServiceRepository) List(ctx context.Context, tenantID uint...
method ListEnabled (line 62) | func (r *mcpServiceRepository) ListEnabled(ctx context.Context, tenant...
method ListByIDs (line 77) | func (r *mcpServiceRepository) ListByIDs(
method Update (line 98) | func (r *mcpServiceRepository) Update(ctx context.Context, service *ty...
method Delete (line 142) | func (r *mcpServiceRepository) Delete(ctx context.Context, tenantID ui...
function NewMCPServiceRepository (line 18) | func NewMCPServiceRepository(db *gorm.DB) interfaces.MCPServiceRepository {
FILE: internal/application/repository/memory/neo4j/repository.go
type MemoryRepository (line 14) | type MemoryRepository struct
method IsAvailable (line 22) | func (r *MemoryRepository) IsAvailable(ctx context.Context) bool {
method SaveEpisode (line 26) | func (r *MemoryRepository) SaveEpisode(ctx context.Context, episode *t...
method FindRelatedEpisodes (line 101) | func (r *MemoryRepository) FindRelatedEpisodes(ctx context.Context, us...
function NewMemoryRepository (line 18) | func NewMemoryRepository(driver neo4j.Driver) interfaces.MemoryRepository {
FILE: internal/application/repository/message.go
type messageRepository (line 15) | type messageRepository struct
method CreateMessage (line 27) | func (r *messageRepository) CreateMessage(
method GetMessage (line 37) | func (r *messageRepository) GetMessage(
method GetMessagesBySession (line 50) | func (r *messageRepository) GetMessagesBySession(
method GetRecentMessagesBySession (line 62) | func (r *messageRepository) GetRecentMessagesBySession(
method GetMessagesBySessionBeforeTime (line 88) | func (r *messageRepository) GetMessagesBySessionBeforeTime(
method UpdateMessage (line 111) | func (r *messageRepository) UpdateMessage(ctx context.Context, message...
method DeleteMessage (line 118) | func (r *messageRepository) DeleteMessage(ctx context.Context, session...
method GetFirstMessageOfUser (line 125) | func (r *messageRepository) GetFirstMessageOfUser(ctx context.Context,...
method GetMessageByRequestID (line 136) | func (r *messageRepository) GetMessageByRequestID(
method SearchMessagesByKeyword (line 156) | func (r *messageRepository) SearchMessagesByKeyword(
method GetMessagesByKnowledgeIDs (line 185) | func (r *messageRepository) GetMessagesByKnowledgeIDs(
method GetMessagesByRequestIDs (line 205) | func (r *messageRepository) GetMessagesByRequestIDs(
method GetKnowledgeIDsBySessionID (line 225) | func (r *messageRepository) GetKnowledgeIDsBySessionID(
method UpdateMessageImages (line 241) | func (r *messageRepository) UpdateMessageImages(ctx context.Context, s...
method DeleteMessagesBySessionID (line 249) | func (r *messageRepository) DeleteMessagesBySessionID(ctx context.Cont...
method UpdateMessageKnowledgeID (line 254) | func (r *messageRepository) UpdateMessageKnowledgeID(
function NewMessageRepository (line 20) | func NewMessageRepository(db *gorm.DB) interfaces.MessageRepository {
FILE: internal/application/repository/model.go
type modelRepository (line 13) | type modelRepository struct
method Create (line 23) | func (r *modelRepository) Create(ctx context.Context, m *types.Model) ...
method GetByID (line 28) | func (r *modelRepository) GetByID(ctx context.Context, tenantID uint64...
method List (line 42) | func (r *modelRepository) List(
method Update (line 66) | func (r *modelRepository) Update(ctx context.Context, m *types.Model) ...
method Delete (line 74) | func (r *modelRepository) Delete(ctx context.Context, tenantID uint64,...
method ClearDefaultByType (line 82) | func (r *modelRepository) ClearDefaultByType(
function NewModelRepository (line 18) | func NewModelRepository(db *gorm.DB) interfaces.ModelRepository {
FILE: internal/application/repository/organization.go
type organizationRepository (line 22) | type organizationRepository struct
method Create (line 32) | func (r *organizationRepository) Create(ctx context.Context, org *type...
method GetByID (line 37) | func (r *organizationRepository) GetByID(ctx context.Context, id strin...
method GetByInviteCode (line 49) | func (r *organizationRepository) GetByInviteCode(ctx context.Context, ...
method ListByUserID (line 64) | func (r *organizationRepository) ListByUserID(ctx context.Context, use...
method ListSearchable (line 81) | func (r *organizationRepository) ListSearchable(ctx context.Context, q...
method Update (line 100) | func (r *organizationRepository) Update(ctx context.Context, org *type...
method Delete (line 107) | func (r *organizationRepository) Delete(ctx context.Context, id string...
method AddMember (line 112) | func (r *organizationRepository) AddMember(ctx context.Context, member...
method RemoveMember (line 127) | func (r *organizationRepository) RemoveMember(ctx context.Context, org...
method UpdateMemberRole (line 142) | func (r *organizationRepository) UpdateMemberRole(ctx context.Context,...
method ListMembers (line 158) | func (r *organizationRepository) ListMembers(ctx context.Context, orgI...
method GetMember (line 173) | func (r *organizationRepository) GetMember(ctx context.Context, orgID ...
method ListMembersByUserForOrgs (line 189) | func (r *organizationRepository) ListMembersByUserForOrgs(ctx context....
method CountMembers (line 210) | func (r *organizationRepository) CountMembers(ctx context.Context, org...
method UpdateInviteCode (line 220) | func (r *organizationRepository) UpdateInviteCode(ctx context.Context,...
method CreateJoinRequest (line 235) | func (r *organizationRepository) CreateJoinRequest(ctx context.Context...
method GetJoinRequestByID (line 240) | func (r *organizationRepository) GetJoinRequestByID(ctx context.Contex...
method GetPendingJoinRequest (line 256) | func (r *organizationRepository) GetPendingJoinRequest(ctx context.Con...
method GetPendingRequestByType (line 271) | func (r *organizationRepository) GetPendingRequestByType(ctx context.C...
method ListJoinRequests (line 286) | func (r *organizationRepository) ListJoinRequests(ctx context.Context,...
method CountJoinRequests (line 304) | func (r *organizationRepository) CountJoinRequests(ctx context.Context...
method UpdateJoinRequestStatus (line 315) | func (r *organizationRepository) UpdateJoinRequestStatus(ctx context.C...
function NewOrganizationRepository (line 27) | func NewOrganizationRepository(db *gorm.DB) interfaces.OrganizationRepos...
FILE: internal/application/repository/retriever/elasticsearch/structs.go
type VectorEmbedding (line 11) | type VectorEmbedding struct
type VectorEmbeddingWithScore (line 25) | type VectorEmbeddingWithScore struct
function ToDBVectorEmbedding (line 31) | func ToDBVectorEmbedding(embedding *types.IndexInfo, additionalParams ma...
function FromDBVectorEmbeddingWithScore (line 61) | func FromDBVectorEmbeddingWithScore(id string,
FILE: internal/application/repository/retriever/elasticsearch/v7/repository.go
type elasticsearchRepository (line 28) | type elasticsearchRepository struct
method EngineType (line 50) | func (e *elasticsearchRepository) EngineType() typesLocal.RetrieverEng...
method Support (line 54) | func (e *elasticsearchRepository) Support() []typesLocal.RetrieverType {
method EstimateStorageSize (line 59) | func (e *elasticsearchRepository) EstimateStorageSize(ctx context.Cont...
method calculateStorageSize (line 80) | func (e *elasticsearchRepository) calculateStorageSize(embedding *elas...
method Save (line 104) | func (e *elasticsearchRepository) Save(ctx context.Context,
method BatchSave (line 153) | func (e *elasticsearchRepository) BatchSave(ctx context.Context,
method prepareBulkRequestBody (line 199) | func (e *elasticsearchRepository) prepareBulkRequestBody(ctx context.C...
method processBulkResponse (line 236) | func (e *elasticsearchRepository) processBulkResponse(ctx context.Cont...
method countBulkErrors (line 266) | func (e *elasticsearchRepository) countBulkErrors(ctx context.Context,
method DeleteByChunkIDList (line 290) | func (e *elasticsearchRepository) DeleteByChunkIDList(ctx context.Cont...
method DeleteBySourceIDList (line 295) | func (e *elasticsearchRepository) DeleteBySourceIDList(ctx context.Con...
method DeleteByKnowledgeIDList (line 300) | func (e *elasticsearchRepository) DeleteByKnowledgeIDList(ctx context....
method deleteByFieldList (line 307) | func (e *elasticsearchRepository) deleteByFieldList(ctx context.Contex...
method getBaseConds (line 360) | func (e *elasticsearchRepository) getBaseConds(params typesLocal.Retri...
method Retrieve (line 448) | func (e *elasticsearchRepository) Retrieve(ctx context.Context,
method VectorRetrieve (line 465) | func (e *elasticsearchRepository) VectorRetrieve(ctx context.Context,
method buildVectorSearchQuery (line 495) | func (e *elasticsearchRepository) buildVectorSearchQuery(ctx context.C...
method executeVectorSearch (line 542) | func (e *elasticsearchRepository) executeVectorSearch(
method KeywordsRetrieve (line 568) | func (e *elasticsearchRepository) KeywordsRetrieve(ctx context.Context,
method buildKeywordSearchQuery (line 597) | func (e *elasticsearchRepository) buildKeywordSearchQuery(ctx context....
method executeKeywordSearch (line 618) | func (e *elasticsearchRepository) executeKeywordSearch(
method processSearchResponse (line 645) | func (e *elasticsearchRepository) processSearchResponse(ctx context.Co...
method decodeSearchResponse (line 681) | func (e *elasticsearchRepository) decodeSearchResponse(ctx context.Con...
method extractHitsFromResponse (line 696) | func (e *elasticsearchRepository) extractHitsFromResponse(ctx context....
method processHits (line 718) | func (e *elasticsearchRepository) processHits(ctx context.Context,
method processHit (line 741) | func (e *elasticsearchRepository) processHit(ctx context.Context,
method convertSourceToEmbedding (line 789) | func (e *elasticsearchRepository) convertSourceToEmbedding(ctx context...
method logResultsSummary (line 812) | func (e *elasticsearchRepository) logResultsSummary(ctx context.Context,
method CopyIndices (line 834) | func (e *elasticsearchRepository) CopyIndices(ctx context.Context,
method querySourceBatch (line 910) | func (e *elasticsearchRepository) querySourceBatch(ctx context.Context,
method processSourceBatch (line 978) | func (e *elasticsearchRepository) processSourceBatch(ctx context.Context,
method processSingleHit (line 1011) | func (e *elasticsearchRepository) processSingleHit(ctx context.Context,
method saveCopiedIndices (line 1127) | func (e *elasticsearchRepository) saveCopiedIndices(ctx context.Contex...
method BatchUpdateChunkEnabledStatus (line 1159) | func (e *elasticsearchRepository) BatchUpdateChunkEnabledStatus(
method BatchUpdateChunkTagID (line 1258) | func (e *elasticsearchRepository) BatchUpdateChunkTagID(
function NewElasticsearchEngineRepository (line 33) | func NewElasticsearchEngineRepository(client *elasticsearch.Client,
FILE: internal/application/repository/retriever/elasticsearch/v8/repository.go
type elasticsearchRepository (line 23) | type elasticsearchRepository struct
method EngineType (line 54) | func (e *elasticsearchRepository) EngineType() typesLocal.RetrieverEng...
method Support (line 59) | func (e *elasticsearchRepository) Support() []typesLocal.RetrieverType {
method calculateStorageSize (line 64) | func (e *elasticsearchRepository) calculateStorageSize(embedding *elas...
method EstimateStorageSize (line 88) | func (e *elasticsearchRepository) EstimateStorageSize(ctx context.Cont...
method Save (line 104) | func (e *elasticsearchRepository) Save(ctx context.Context,
method BatchSave (line 132) | func (e *elasticsearchRepository) BatchSave(ctx context.Context,
method DeleteByChunkIDList (line 168) | func (e *elasticsearchRepository) DeleteByChunkIDList(ctx context.Cont...
method DeleteBySourceIDList (line 191) | func (e *elasticsearchRepository) DeleteBySourceIDList(ctx context.Con...
method DeleteByKnowledgeIDList (line 214) | func (e *elasticsearchRepository) DeleteByKnowledgeIDList(ctx context....
method getBaseConds (line 240) | func (e *elasticsearchRepository) getBaseConds(params typesLocal.Retri...
method createIndexIfNotExists (line 291) | func (e *elasticsearchRepository) createIndexIfNotExists(ctx context.C...
method Retrieve (line 321) | func (e *elasticsearchRepository) Retrieve(ctx context.Context,
method VectorRetrieve (line 342) | func (e *elasticsearchRepository) VectorRetrieve(ctx context.Context,
method KeywordsRetrieve (line 414) | func (e *elasticsearchRepository) KeywordsRetrieve(ctx context.Context,
method CopyIndices (line 468) | func (e *elasticsearchRepository) CopyIndices(ctx context.Context,
method BatchUpdateChunkEnabledStatus (line 614) | func (e *elasticsearchRepository) BatchUpdateChunkEnabledStatus(
method BatchUpdateChunkTagID (line 695) | func (e *elasticsearchRepository) BatchUpdateChunkTagID(
function NewElasticsearchEngineRepository (line 30) | func NewElasticsearchEngineRepository(client *elasticsearch.TypedClient,
FILE: internal/application/repository/retriever/milvus/filter.go
constant operatorAnd (line 14) | operatorAnd = "and"
constant operatorOr (line 17) | operatorOr = "or"
constant operatorEqual (line 20) | operatorEqual = "eq"
constant operatorNotEqual (line 23) | operatorNotEqual = "ne"
constant operatorGreaterThan (line 26) | operatorGreaterThan = "gt"
constant operatorGreaterThanOrEqual (line 29) | operatorGreaterThanOrEqual = "gte"
constant operatorLessThan (line 32) | operatorLessThan = "lt"
constant operatorLessThanOrEqual (line 35) | operatorLessThanOrEqual = "lte"
constant operatorIn (line 38) | operatorIn = "in"
constant operatorNotIn (line 41) | operatorNotIn = "not in"
constant operatorLike (line 44) | operatorLike = "like"
constant operatorNotLike (line 47) | operatorNotLike = "not like"
constant operatorBetween (line 50) | operatorBetween = "between"
type convertResult (line 64) | type convertResult struct
type filter (line 69) | type filter struct
method Convert (line 71) | func (c *filter) Convert(cond *universalFilterCondition) (*convertResu...
method convertComparisonCondition (line 76) | func (c *filter) convertComparisonCondition(
method convertLogicalCondition (line 96) | func (c *filter) convertLogicalCondition(
method convertCondition (line 137) | func (c *filter) convertCondition(
method convertInCondition (line 160) | func (c *filter) convertInCondition(
method convertBetweenCondition (line 181) | func (c *filter) convertBetweenCondition(
method convertParamName (line 236) | func (c *filter) convertParamName(field string, counter *int) string {
function formatValue (line 207) | func formatValue(value any) string {
function escapeDoubleQuotes (line 230) | func escapeDoubleQuotes(s string) string {
type universalFilterCondition (line 241) | type universalFilterCondition struct
method UnmarshalJSON (line 247) | func (c *universalFilterCondition) UnmarshalJSON(data []byte) error {
method MarshalJSON (line 292) | func (c *universalFilterCondition) MarshalJSON() ([]byte, error) {
FILE: internal/application/repository/retriever/milvus/repository.go
constant envMilvusCollection (line 23) | envMilvusCollection = "MILVUS_COLLECTION"
constant defaultCollectionName (line 24) | defaultCollectionName = "weknora_embeddings"
constant fieldContent (line 25) | fieldContent = "content"
constant fieldSourceID (line 26) | fieldSourceID = "source_id"
constant fieldSourceType (line 27) | fieldSourceType = "source_type"
constant fieldChunkID (line 28) | fieldChunkID = "chunk_id"
constant fieldKnowledgeID (line 29) | fieldKnowledgeID = "knowledge_id"
constant fieldKnowledgeBaseID (line 30) | fieldKnowledgeBaseID = "knowledge_base_id"
constant fieldTagID (line 31) | fieldTagID = "tag_id"
constant fieldEmbedding (line 32) | fieldEmbedding = "embedding"
constant fieldIsEnabled (line 33) | fieldIsEnabled = "is_enabled"
constant fieldID (line 34) | fieldID = "id"
constant fieldContentSparse (line 35) | fieldContentSparse = "content_sparse"
function NewMilvusRetrieveEngineRepository (line 44) | func NewMilvusRetrieveEngineRepository(client *client.Client) interfaces...
method getCollectionName (line 65) | func (m *milvusRepository) getCollectionName(dimension int) string {
method ensureCollection (line 70) | func (m *milvusRepository) ensureCollection(ctx context.Context, dimensi...
method EngineType (line 186) | func (m *milvusRepository) EngineType() types.RetrieverEngineType {
method Support (line 190) | func (m *milvusRepository) Support() []types.RetrieverType {
method EstimateStorageSize (line 195) | func (m *milvusRepository) EstimateStorageSize(ctx context.Context,
method Save (line 210) | func (m *milvusRepository) Save(ctx context.Context,
method BatchSave (line 245) | func (m *milvusRepository) BatchSave(ctx context.Context,
method DeleteByChunkIDList (line 307) | func (m *milvusRepository) DeleteByChunkIDList(ctx context.Context, chun...
method DeleteByKnowledgeIDList (line 330) | func (m *milvusRepository) DeleteByKnowledgeIDList(ctx context.Context,
method DeleteBySourceIDList (line 355) | func (m *milvusRepository) DeleteBySourceIDList(ctx context.Context,
method BatchUpdateChunkEnabledStatus (line 380) | func (m *milvusRepository) BatchUpdateChunkEnabledStatus(ctx context.Con...
method searchByFilter (line 466) | func (m *milvusRepository) searchByFilter(ctx context.Context, collectio...
method BatchUpdateChunkTagID (line 497) | func (m *milvusRepository) BatchUpdateChunkTagID(ctx context.Context, ch...
method getBaseFilterForQuery (line 558) | func (m *milvusRepository) getBaseFilterForQuery(params types.RetrievePa...
method Retrieve (line 614) | func (m *milvusRepository) Retrieve(ctx context.Context,
method VectorRetrieve (line 633) | func (m *milvusRepository) VectorRetrieve(ctx context.Context,
method KeywordsRetrieve (line 703) | func (m *milvusRepository) KeywordsRetrieve(ctx context.Context,
method CopyIndices (line 771) | func (m *milvusRepository) CopyIndices(ctx context.Context,
function buildRetrieveResult (line 876) | func buildRetrieveResult(results []*types.IndexWithScore, retrieverType ...
method calculateStorageSize (line 887) | func (m *milvusRepository) calculateStorageSize(embedding *MilvusVectorE...
function toMilvusVectorEmbedding (line 919) | func toMilvusVectorEmbedding(embedding *types.IndexInfo, additionalParam...
function fromMilvusVectorEmbedding (line 939) | func fromMilvusVectorEmbedding(id string,
function createUpsert (line 957) | func createUpsert(collectionName string, embeddings []*MilvusVectorEmbed...
function convertResultSet (line 996) | func convertResultSet(resultSet []client.ResultSet) ([]*MilvusVectorEmbe...
FILE: internal/application/repository/retriever/milvus/structs.go
type milvusRepository (line 9) | type milvusRepository struct
type MilvusVectorEmbedding (line 17) | type MilvusVectorEmbedding struct
type MilvusVectorEmbeddingWithScore (line 30) | type MilvusVectorEmbeddingWithScore struct
FILE: internal/application/repository/retriever/neo4j/repository.go
type Neo4jRepository (line 15) | type Neo4jRepository struct
method Labels (line 31) | func (n *Neo4jRepository) Labels(namespace types.NameSpace) []string {
method Label (line 40) | func (n *Neo4jRepository) Label(namespace types.NameSpace) string {
method AddGraph (line 46) | func (n *Neo4jRepository) AddGraph(ctx context.Context, namespace type...
method addGraph (line 60) | func (n *Neo4jRepository) addGraph(ctx context.Context, namespace type...
method DelGraph (line 118) | func (n *Neo4jRepository) DelGraph(ctx context.Context, namespaces []t...
method SearchNode (line 164) | func (n *Neo4jRepository) SearchNode(
function NewNeo4jRepository (line 21) | func NewNeo4jRepository(driver neo4j.Driver) interfaces.RetrieveGraphRep...
function _remove_hyphen (line 26) | func _remove_hyphen(s string) string {
function listI2listS (line 230) | func listI2listS(list []any) []string {
FILE: internal/application/repository/retriever/postgres/repository.go
type pgRepository (line 20) | type pgRepository struct
method EngineType (line 31) | func (r *pgRepository) EngineType() types.RetrieverEngineType {
method Support (line 36) | func (r *pgRepository) Support() []types.RetrieverType {
method calculateIndexStorageSize (line 41) | func (g *pgRepository) calculateIndexStorageSize(embeddingDB *pgVector...
method EstimateStorageSize (line 64) | func (g *pgRepository) EstimateStorageSize(
method Save (line 80) | func (g *pgRepository) Save(ctx context.Context, indexInfo *types.Inde...
method BatchSave (line 93) | func (g *pgRepository) BatchSave(
method DeleteByChunkIDList (line 111) | func (g *pgRepository) DeleteByChunkIDList(ctx context.Context, chunkI...
method DeleteBySourceIDList (line 123) | func (g *pgRepository) DeleteBySourceIDList(ctx context.Context, sourc...
method DeleteByKnowledgeIDList (line 138) | func (g *pgRepository) DeleteByKnowledgeIDList(ctx context.Context, kn...
method Retrieve (line 150) | func (g *pgRepository) Retrieve(ctx context.Context, params types.Retr...
method KeywordsRetrieve (line 164) | func (g *pgRepository) KeywordsRetrieve(ctx context.Context,
method VectorRetrieve (line 262) | func (g *pgRepository) VectorRetrieve(ctx context.Context,
method CopyIndices (line 424) | func (g *pgRepository) CopyIndices(ctx context.Context,
method BatchUpdateChunkEnabledStatus (line 557) | func (g *pgRepository) BatchUpdateChunkEnabledStatus(ctx context.Conte...
method BatchUpdateChunkTagID (line 608) | func (g *pgRepository) BatchUpdateChunkTagID(ctx context.Context, chun...
function NewPostgresRetrieveEngineRepository (line 25) | func NewPostgresRetrieveEngineRepository(db *gorm.DB) interfaces.Retriev...
FILE: internal/application/repository/retriever/postgres/structs.go
type pgVector (line 15) | type pgVector struct
method TableName (line 55) | func (pgVector) TableName() string {
type pgVectorWithScore (line 32) | type pgVectorWithScore struct
method TableName (line 50) | func (pgVectorWithScore) TableName() string {
function toDBVectorEmbedding (line 60) | func toDBVectorEmbedding(indexInfo *types.IndexInfo, additionalParams ma...
function fromDBVectorEmbeddingWithScore (line 90) | func fromDBVectorEmbeddingWithScore(embedding *pgVectorWithScore, matchT...
FILE: internal/application/repository/retriever/qdrant/repository.go
constant envQdrantCollection (line 20) | envQdrantCollection = "QDRANT_COLLECTION"
constant defaultCollectionName (line 21) | defaultCollectionName = "weknora_embeddings"
constant fieldContent (line 22) | fieldContent = "content"
constant fieldSourceID (line 23) | fieldSourceID = "source_id"
constant fieldSourceType (line 24) | fieldSourceType = "source_type"
constant fieldChunkID (line 25) | fieldChunkID = "chunk_id"
constant fieldKnowledgeID (line 26) | fieldKnowledgeID = "knowledge_id"
constant fieldKnowledgeBaseID (line 27) | fieldKnowledgeBaseID = "knowledge_base_id"
constant fieldTagID (line 28) | fieldTagID = "tag_id"
constant fieldEmbedding (line 29) | fieldEmbedding = "embedding"
constant fieldIsEnabled (line 30) | fieldIsEnabled = "is_enabled"
function NewQdrantRetrieveEngineRepository (line 34) | func NewQdrantRetrieveEngineRepository(client *qdrant.Client) interfaces...
method getCollectionName (line 54) | func (q *qdrantRepository) getCollectionName(dimension int) string {
method ensureCollection (line 59) | func (q *qdrantRepository) ensureCollection(ctx context.Context, dimensi...
method EngineType (line 142) | func (q *qdrantRepository) EngineType() types.RetrieverEngineType {
method Support (line 146) | func (q *qdrantRepository) Support() []types.RetrieverType {
method EstimateStorageSize (line 151) | func (q *qdrantRepository) EstimateStorageSize(ctx context.Context,
method Save (line 166) | func (q *qdrantRepository) Save(ctx context.Context,
method BatchSave (line 207) | func (q *qdrantRepository) BatchSave(ctx context.Context,
method DeleteByChunkIDList (line 268) | func (q *qdrantRepository) DeleteByChunkIDList(ctx context.Context, chun...
method DeleteByKnowledgeIDList (line 296) | func (q *qdrantRepository) DeleteByKnowledgeIDList(ctx context.Context,
method DeleteBySourceIDList (line 326) | func (q *qdrantRepository) DeleteBySourceIDList(ctx context.Context,
method BatchUpdateChunkEnabledStatus (line 357) | func (q *qdrantRepository) BatchUpdateChunkEnabledStatus(ctx context.Con...
method BatchUpdateChunkTagID (line 431) | func (q *qdrantRepository) BatchUpdateChunkTagID(ctx context.Context, ch...
method getBaseFilter (line 482) | func (q *qdrantRepository) getBaseFilter(params types.RetrieveParams) *q...
method Retrieve (line 521) | func (q *qdrantRepository) Retrieve(ctx context.Context,
method VectorRetrieve (line 540) | func (q *qdrantRepository) VectorRetrieve(ctx context.Context,
method KeywordsRetrieve (line 612) | func (q *qdrantRepository) KeywordsRetrieve(ctx context.Context,
method CopyIndices (line 709) | func (q *qdrantRepository) CopyIndices(ctx context.Context,
function createPayload (line 864) | func createPayload(embedding *QdrantVectorEmbedding) map[string]*qdrant....
function buildRetrieveResult (line 878) | func buildRetrieveResult(results []*types.IndexWithScore, retrieverType ...
method calculateStorageSize (line 890) | func (q *qdrantRepository) calculateStorageSize(embedding *QdrantVectorE...
function toQdrantVectorEmbedding (line 923) | func toQdrantVectorEmbedding(embedding *types.IndexInfo, additionalParam...
function fromQdrantVectorEmbedding (line 943) | func fromQdrantVectorEmbedding(id string,
function tokenizeQuery (line 963) | func tokenizeQuery(query string) []string {
FILE: internal/application/repository/retriever/qdrant/structs.go
type qdrantRepository (line 9) | type qdrantRepository struct
type QdrantVectorEmbedding (line 16) | type QdrantVectorEmbedding struct
type QdrantVectorEmbeddingWithScore (line 28) | type QdrantVectorEmbeddingWithScore struct
FILE: internal/application/repository/retriever/sqlite/repository.go
type sqliteEmbedding (line 21) | type sqliteEmbedding struct
method TableName (line 36) | func (sqliteEmbedding) TableName() string { return "lite_embeddings" }
type sqliteRepository (line 38) | type sqliteRepository struct
method ensureVecTable (line 77) | func (r *sqliteRepository) ensureVecTable(dim int) {
method ensureExistingVecTables (line 97) | func (r *sqliteRepository) ensureExistingVecTables() {
method EngineType (line 105) | func (r *sqliteRepository) EngineType() types.RetrieverEngineType {
method Support (line 109) | func (r *sqliteRepository) Support() []types.RetrieverType {
method Save (line 113) | func (r *sqliteRepository) Save(ctx context.Context, indexInfo *types....
method BatchSave (line 129) | func (r *sqliteRepository) BatchSave(ctx context.Context, indexInfoLis...
method EstimateStorageSize (line 155) | func (r *sqliteRepository) EstimateStorageSize(_ context.Context, inde...
method DeleteByChunkIDList (line 163) | func (r *sqliteRepository) DeleteByChunkIDList(ctx context.Context, ch...
method DeleteBySourceIDList (line 170) | func (r *sqliteRepository) DeleteBySourceIDList(ctx context.Context, s...
method DeleteByKnowledgeIDList (line 177) | func (r *sqliteRepository) DeleteByKnowledgeIDList(ctx context.Context...
method CopyIndices (line 184) | func (r *sqliteRepository) CopyIndices(ctx context.Context,
method BatchUpdateChunkEnabledStatus (line 219) | func (r *sqliteRepository) BatchUpdateChunkEnabledStatus(ctx context.C...
method BatchUpdateChunkTagID (line 226) | func (r *sqliteRepository) BatchUpdateChunkTagID(ctx context.Context, ...
method Retrieve (line 235) | func (r *sqliteRepository) Retrieve(ctx context.Context, params types....
method keywordsRetrieve (line 268) | func (r *sqliteRepository) keywordsRetrieve(ctx context.Context, param...
method vectorRetrieve (line 344) | func (r *sqliteRepository) vectorRetrieve(ctx context.Context, params ...
method insertVec (line 465) | func (r *sqliteRepository) insertVec(_ context.Context, rowID uint, di...
method deleteRowsAndVecs (line 475) | func (r *sqliteRepository) deleteRowsAndVecs(_ context.Context, rows [...
method copyVec (line 493) | func (r *sqliteRepository) copyVec(_ context.Context, srcID, dstID uin...
method syncFTS5Insert (line 504) | func (r *sqliteRepository) syncFTS5Insert(_ context.Context, row *sqli...
function NewSQLiteRetrieveEngineRepository (line 43) | func NewSQLiteRetrieveEngineRepository(db *gorm.DB) interfaces.RetrieveE...
function initFTS5 (line 62) | func initFTS5(db *gorm.DB) {
function vecTableName (line 73) | func vecTableName(dim int) string {
function toSQLiteEmbedding (line 439) | func toSQLiteEmbedding(info *types.IndexInfo) *sqliteEmbedding {
function extractEmbedding (line 454) | func extractEmbedding(params map[string]any, sourceID string) []float32 {
type whereClause (line 512) | type whereClause struct
function buildFilterWhere (line 517) | func buildFilterWhere(params types.RetrieveParams) []whereClause {
function placeholders (line 540) | func placeholders(n int) string {
function toInterfaceSlice (line 548) | func toInterfaceSlice(ss []string) []interface{} {
function sanitizeFTS5Query (line 561) | func sanitizeFTS5Query(q string) string {
FILE: internal/application/repository/retriever/weaviate/repository.go
constant envWeaviateCollection (line 24) | envWeaviateCollection = "WEAVIATE_COLLECTION"
constant defaultCollectionName (line 25) | defaultCollectionName = "Weknora_embeddings"
constant fieldContent (line 26) | fieldContent = "content"
constant fieldSourceID (line 27) | fieldSourceID = "source_id"
constant fieldSourceType (line 28) | fieldSourceType = "source_type"
constant fieldChunkID (line 29) | fieldChunkID = "chunk_id"
constant fieldKnowledgeID (line 30) | fieldKnowledgeID = "knowledge_id"
constant fieldKnowledgeBaseID (line 31) | fieldKnowledgeBaseID = "knowledge_base_id"
constant fieldTagID (line 32) | fieldTagID = "tag_id"
constant fieldEmbedding (line 33) | fieldEmbedding = "embedding"
constant fieldIsEnabled (line 34) | fieldIsEnabled = "is_enabled"
constant fieldID (line 35) | fieldID = "id"
function NewWeaviateRetrieveEngineRepository (line 38) | func NewWeaviateRetrieveEngineRepository(client *weaviate.Client) interf...
method getCollectionName (line 57) | func (w *weaviateRepository) getCollectionName(dimension int) string {
method ensureCollection (line 61) | func (w *weaviateRepository) ensureCollection(ctx context.Context, dimen...
method EngineType (line 151) | func (w *weaviateRepository) EngineType() types.RetrieverEngineType {
method Support (line 155) | func (w *weaviateRepository) Support() []types.RetrieverType {
method EstimateStorageSize (line 160) | func (w *weaviateRepository) EstimateStorageSize(ctx context.Context,
method Save (line 175) | func (w *weaviateRepository) Save(ctx context.Context,
method BatchSave (line 213) | func (w *weaviateRepository) BatchSave(ctx context.Context,
method DeleteByChunkIDList (line 278) | func (w *weaviateRepository) DeleteByChunkIDList(ctx context.Context, ch...
method DeleteByKnowledgeIDList (line 307) | func (w *weaviateRepository) DeleteByKnowledgeIDList(ctx context.Context,
method DeleteBySourceIDList (line 338) | func (w *weaviateRepository) DeleteBySourceIDList(ctx context.Context,
method BatchUpdateChunkEnabledStatus (line 368) | func (w *weaviateRepository) BatchUpdateChunkEnabledStatus(ctx context.C...
method BatchUpdateChunkTagID (line 420) | func (w *weaviateRepository) BatchUpdateChunkTagID(ctx context.Context, ...
method getBaseFilter (line 466) | func (w *weaviateRepository) getBaseFilter(params types.RetrieveParams) ...
method Retrieve (line 511) | func (w *weaviateRepository) Retrieve(ctx context.Context,
method VectorRetrieve (line 530) | func (w *weaviateRepository) VectorRetrieve(ctx context.Context,
method KeywordsRetrieve (line 594) | func (w *weaviateRepository) KeywordsRetrieve(ctx context.Context,
method CopyIndices (line 666) | func (w *weaviateRepository) CopyIndices(ctx context.Context,
method ListCollections (line 807) | func (w *weaviateRepository) ListCollections(ctx context.Context) ([]str...
function createPayload (line 820) | func createPayload(embedding *WeaviateVectorEmbedding) map[string]interf...
function buildRetrieveResult (line 834) | func buildRetrieveResult(results []*types.IndexWithScore, retrieverType ...
function getKeywordsFields (line 845) | func getKeywordsFields() []graphql.Field {
function getEmbeddingFields (line 864) | func getEmbeddingFields() []graphql.Field {
function getVectorFields (line 883) | func getVectorFields() []graphql.Field {
function parseGraphQLResponse (line 903) | func parseGraphQLResponse(items []interface{}, collectionName string, ma...
method calculateStorageSize (line 957) | func (w *weaviateRepository) calculateStorageSize(embedding *WeaviateVec...
function toWeaviateVectorEmbedding (line 990) | func toWeaviateVectorEmbedding(embedding *types.IndexInfo, additionalPar...
function fromWeaviateVectorEmbedding (line 1010) | func fromWeaviateVectorEmbedding(id string,
function tokenizeQuery (line 1030) | func tokenizeQuery(query string) []string {
FILE: internal/application/repository/retriever/weaviate/structs.go
type weaviateRepository (line 9) | type weaviateRepository struct
type WeaviateVectorEmbedding (line 16) | type WeaviateVectorEmbedding struct
type WeaviateVectorEmbeddingWithScore (line 28) | type WeaviateVectorEmbeddingWithScore struct
FILE: internal/application/repository/session.go
type sessionRepository (line 13) | type sessionRepository struct
method Create (line 23) | func (r *sessionRepository) Create(ctx context.Context, session *types...
method Get (line 34) | func (r *sessionRepository) Get(ctx context.Context, tenantID uint64, ...
method GetByTenantID (line 44) | func (r *sessionRepository) GetByTenantID(ctx context.Context, tenantI...
method GetPagedByTenantID (line 54) | func (r *sessionRepository) GetPagedByTenantID(
method Update (line 81) | func (r *sessionRepository) Update(ctx context.Context, session *types...
method Delete (line 94) | func (r *sessionRepository) Delete(ctx context.Context, tenantID uint6...
method BatchDelete (line 99) | func (r *sessionRepository) BatchDelete(ctx context.Context, tenantID ...
method DeleteAllByTenantID (line 107) | func (r *sessionRepository) DeleteAllByTenantID(ctx context.Context, t...
function NewSessionRepository (line 18) | func NewSessionRepository(db *gorm.DB) interfaces.SessionRepository {
FILE: internal/application/repository/tag.go
type knowledgeTagRepository (line 13) | type knowledgeTagRepository struct
method Create (line 23) | func (r *knowledgeTagRepository) Create(ctx context.Context, tag *type...
method Update (line 28) | func (r *knowledgeTagRepository) Update(ctx context.Context, tag *type...
method GetByID (line 33) | func (r *knowledgeTagRepository) GetByID(ctx context.Context, tenantID...
method GetByIDs (line 44) | func (r *knowledgeTagRepository) GetByIDs(ctx context.Context, tenantI...
method GetBySeqID (line 58) | func (r *knowledgeTagRepository) GetBySeqID(ctx context.Context, tenan...
method GetBySeqIDs (line 69) | func (r *knowledgeTagRepository) GetBySeqIDs(ctx context.Context, tena...
method GetByName (line 83) | func (r *knowledgeTagRepository) GetByName(ctx context.Context, tenant...
method ListByKB (line 94) | func (r *knowledgeTagRepository) ListByKB(
method Delete (line 136) | func (r *knowledgeTagRepository) Delete(ctx context.Context, tenantID ...
method CountReferences (line 143) | func (r *knowledgeTagRepository) CountReferences(
method BatchCountReferences (line 171) | func (r *knowledgeTagRepository) BatchCountReferences(
method DeleteUnusedTags (line 224) | func (r *knowledgeTagRepository) DeleteUnusedTags(ctx context.Context,...
function NewKnowledgeTagRepository (line 18) | func NewKnowledgeTagRepository(db *gorm.DB) interfaces.KnowledgeTagRepos...
type tagCountResult (line 165) | type tagCountResult struct
FILE: internal/application/repository/tenant.go
type tenantRepository (line 20) | type tenantRepository struct
method CreateTenant (line 30) | func (r *tenantRepository) CreateTenant(ctx context.Context, tenant *t...
method GetTenantByID (line 35) | func (r *tenantRepository) GetTenantByID(ctx context.Context, id uint6...
method ListTenants (line 47) | func (r *tenantRepository) ListTenants(ctx context.Context) ([]*types....
method SearchTenants (line 56) | func (r *tenantRepository) SearchTenants(ctx context.Context, keyword ...
method UpdateTenant (line 97) | func (r *tenantRepository) UpdateTenant(ctx context.Context, tenant *t...
method DeleteTenant (line 102) | func (r *tenantRepository) DeleteTenant(ctx context.Context, id uint64...
method AdjustStorageUsed (line 106) | func (r *tenantRepository) AdjustStorageUsed(ctx context.Context, tena...
function NewTenantRepository (line 25) | func NewTenantRepository(db *gorm.DB) interfaces.TenantRepository {
FILE: internal/application/repository/tenant_disabled_shared_agent.go
type tenantDisabledSharedAgentRepository (line 11) | type tenantDisabledSharedAgentRepository struct
method ListByTenantID (line 20) | func (r *tenantDisabledSharedAgentRepository) ListByTenantID(ctx conte...
method ListDisabledOwnAgentIDs (line 26) | func (r *tenantDisabledSharedAgentRepository) ListDisabledOwnAgentIDs(...
method Add (line 34) | func (r *tenantDisabledSharedAgentRepository) Add(ctx context.Context,...
method Remove (line 43) | func (r *tenantDisabledSharedAgentRepository) Remove(ctx context.Conte...
function NewTenantDisabledSharedAgentRepository (line 16) | func NewTenantDisabledSharedAgentRepository(db *gorm.DB) interfaces.Tena...
FILE: internal/application/repository/user.go
type userRepository (line 19) | type userRepository struct
method CreateUser (line 29) | func (r *userRepository) CreateUser(ctx context.Context, user *types.U...
method GetUserByID (line 34) | func (r *userRepository) GetUserByID(ctx context.Context, id string) (...
method GetUserByEmail (line 46) | func (r *userRepository) GetUserByEmail(ctx context.Context, email str...
method GetUserByUsername (line 58) | func (r *userRepository) GetUserByUsername(ctx context.Context, userna...
method GetUserByTenantID (line 70) | func (r *userRepository) GetUserByTenantID(ctx context.Context, tenant...
method UpdateUser (line 82) | func (r *userRepository) UpdateUser(ctx context.Context, user *types.U...
method DeleteUser (line 87) | func (r *userRepository) DeleteUser(ctx context.Context, id string) er...
method ListUsers (line 92) | func (r *userRepository) ListUsers(ctx context.Context, offset, limit ...
method SearchUsers (line 111) | func (r *userRepository) SearchUsers(ctx context.Context, query string...
function NewUserRepository (line 24) | func NewUserRepository(db *gorm.DB) interfaces.UserRepository {
type authTokenRepository (line 133) | type authTokenRepository struct
method CreateToken (line 143) | func (r *authTokenRepository) CreateToken(ctx context.Context, token *...
method GetTokenByValue (line 148) | func (r *authTokenRepository) GetTokenByValue(ctx context.Context, tok...
method GetTokensByUserID (line 160) | func (r *authTokenRepository) GetTokensByUserID(ctx context.Context, u...
method UpdateToken (line 169) | func (r *authTokenRepository) UpdateToken(ctx context.Context, token *...
method DeleteToken (line 174) | func (r *authTokenRepository) DeleteToken(ctx context.Context, id stri...
method DeleteExpiredTokens (line 179) | func (r *authTokenRepository) DeleteExpiredTokens(ctx context.Context)...
method RevokeTokensByUserID (line 184) | func (r *authTokenRepository) RevokeTokensByUserID(ctx context.Context...
function NewAuthTokenRepository (line 138) | func NewAuthTokenRepository(db *gorm.DB) interfaces.AuthTokenRepository {
FILE: internal/application/service/agent_service.go
constant MAX_ITERATIONS (line 26) | MAX_ITERATIONS = 100
type agentService (line 29) | type agentService struct
method CreateAgentEngine (line 79) | func (s *agentService) CreateAgentEngine(
method initializeSkillsManager (line 223) | func (s *agentService) initializeSkillsManager(
method registerTools (line 298) | func (s *agentService) registerTools(
method ValidateConfig (line 427) | func (s *agentService) ValidateConfig(config *types.AgentConfig) error {
method getKnowledgeBaseInfos (line 444) | func (s *agentService) getKnowledgeBaseInfos(ctx context.Context, kbID...
method getSelectedDocumentInfos (line 551) | func (s *agentService) getSelectedDocumentInfos(ctx context.Context, k...
function NewAgentService (line 46) | func NewAgentService(
FILE: internal/application/service/agent_share.go
type agentShareService (line 26) | type agentShareService struct
method ShareAgent (line 52) | func (s *agentShareService) ShareAgent(ctx context.Context, agentID st...
method RemoveShare (line 126) | func (s *agentShareService) RemoveShare(ctx context.Context, shareID s...
method ListSharesByAgent (line 145) | func (s *agentShareService) ListSharesByAgent(ctx context.Context, age...
method ListSharesByOrganization (line 150) | func (s *agentShareService) ListSharesByOrganization(ctx context.Conte...
method ListSharedAgents (line 155) | func (s *agentShareService) ListSharedAgents(ctx context.Context, user...
method ListSharedAgentsInOrganization (line 228) | func (s *agentShareService) ListSharedAgentsInOrganization(ctx context...
method ListSharedAgentsInOrganizations (line 298) | func (s *agentShareService) ListSharedAgentsInOrganizations(ctx contex...
method CountByOrganizations (line 368) | func (s *agentShareService) CountByOrganizations(ctx context.Context, ...
method SetSharedAgentDisabledByMe (line 373) | func (s *agentShareService) SetSharedAgentDisabledByMe(ctx context.Con...
method GetSharedAgentForUser (line 381) | func (s *agentShareService) GetSharedAgentForUser(ctx context.Context,...
method UserCanAccessKBViaSomeSharedAgent (line 403) | func (s *agentShareService) UserCanAccessKBViaSomeSharedAgent(ctx cont...
method GetShare (line 438) | func (s *agentShareService) GetShare(ctx context.Context, shareID stri...
method GetShareByAgentAndOrg (line 450) | func (s *agentShareService) GetShareByAgentAndOrg(ctx context.Context,...
method GetShareByAgentIDForUser (line 462) | func (s *agentShareService) GetShareByAgentIDForUser(ctx context.Conte...
function NewAgentShareService (line 35) | func NewAgentShareService(
FILE: internal/application/service/chat_pipline/chat_completion.go
type PluginChatCompletion (line 12) | type PluginChatCompletion struct
method ActivationEvents (line 27) | func (p *PluginChatCompletion) ActivationEvents() []types.EventType {
method OnEvent (line 33) | func (p *PluginChatCompletion) OnEvent(
function NewPluginChatCompletion (line 18) | func NewPluginChatCompletion(eventManager *EventManager, modelService in...
FILE: internal/application/service/chat_pipline/chat_completion_stream.go
type PluginChatCompletionStream (line 17) | type PluginChatCompletionStream struct
method ActivationEvents (line 34) | func (p *PluginChatCompletionStream) ActivationEvents() []types.EventT...
method OnEvent (line 40) | func (p *PluginChatCompletionStream) OnEvent(ctx context.Context,
function NewPluginChatCompletionStream (line 23) | func NewPluginChatCompletionStream(eventManager *EventManager,
FILE: internal/application/service/chat_pipline/chat_pipline.go
type Plugin (line 11) | type Plugin interface
type EventManager (line 24) | type EventManager struct
method Register (line 40) | func (e *EventManager) Register(plugin Plugin) {
method buildHandler (line 54) | func (e *EventManager) buildHandler(plugins []Plugin) func(
method Trigger (line 71) | func (e *EventManager) Trigger(ctx context.Context,
function NewEventManager (line 32) | func NewEventManager() *EventManager {
type PluginError (line 81) | type PluginError struct
method clone (line 128) | func (p *PluginError) clone() *PluginError {
method WithError (line 136) | func (p *PluginError) WithError(err error) *PluginError {
FILE: internal/application/service/chat_pipline/chat_pipline_test.go
type testPlugin (line 12) | type testPlugin struct
method OnEvent (line 19) | func (p *testPlugin) OnEvent(ctx context.Context,
method ActivationEvents (line 31) | func (p *testPlugin) ActivationEvents() []types.EventType {
function TestTrigger (line 35) | func TestTrigger(t *testing.T) {
FILE: internal/application/service/chat_pipline/common.go
function pipelineInfo (line 15) | func pipelineInfo(ctx context.Context, stage, action string, fields map[...
function pipelineWarn (line 20) | func pipelineWarn(ctx context.Context, stage, action string, fields map[...
function pipelineError (line 25) | func pipelineError(ctx context.Context, stage, action string, fields map...
function prepareChatModel (line 31) | func prepareChatModel(ctx context.Context, modelService interfaces.Model...
function prepareMessagesWithHistory (line 55) | func prepareMessagesWithHistory(chatManage *types.ChatManage) []chat.Mes...
function extractImageCaptions (line 83) | func extractImageCaptions(images types.MessageImages) string {
function renderSystemPromptPlaceholders (line 97) | func renderSystemPromptPlaceholders(prompt string, language ...string) s...
FILE: internal/application/service/chat_pipline/data_analysis.go
type PluginDataAnalysis (line 19) | type PluginDataAnalysis struct
method ActivationEvents (line 46) | func (p *PluginDataAnalysis) ActivationEvents() []types.EventType {
method OnEvent (line 50) | func (p *PluginDataAnalysis) OnEvent(
function NewPluginDataAnalysis (line 27) | func NewPluginDataAnalysis(
function isDataFile (line 150) | func isDataFile(filename string) bool {
function filterOutTableChunks (line 156) | func filterOutTableChunks(results []*types.SearchResult) []*types.Search...
FILE: internal/application/service/chat_pipline/extract_entity.go
type PluginExtractEntity (line 21) | type PluginExtractEntity struct
method ActivationEvents (line 52) | func (p *PluginExtractEntity) ActivationEvents() []types.EventType {
method OnEvent (line 58) | func (p *PluginExtractEntity) OnEvent(ctx context.Context,
function NewPluginExtractEntity (line 31) | func NewPluginExtractEntity(
type Extractor (line 156) | type Extractor struct
method Extract (line 182) | func (e *Extractor) Extract(ctx context.Context, content string) (*typ...
method RemoveUnknownRelation (line 204) | func (e *Extractor) RemoveUnknownRelation(ctx context.Context, graph *...
function NewExtractor (line 164) | func NewExtractor(
type QAPromptGenerator (line 222) | type QAPromptGenerator struct
method System (line 244) | func (qa *QAPromptGenerator) System(ctx context.Context) string {
method User (line 274) | func (qa *QAPromptGenerator) User(ctx context.Context, question string...
method Render (line 283) | func (qa *QAPromptGenerator) Render(ctx context.Context, question stri...
function NewQAPromptGenerator (line 232) | func NewQAPromptGenerator(formater *Formater, template *types.PromptTemp...
type FormatType (line 297) | type FormatType
constant FormatTypeJSON (line 301) | FormatTypeJSON FormatType = "json"
constant FormatTypeYAML (line 303) | FormatTypeYAML FormatType = "yaml"
constant _FENCE_START (line 307) | _FENCE_START = "```"
constant _LANGUAGE_TAG (line 308) | _LANGUAGE_TAG = `(?P<lang>[A-Za-z0-9_+-]+)?`
constant _FENCE_NEWLINE (line 309) | _FENCE_NEWLINE = `(?:\s*\n)?`
constant _FENCE_BODY (line 310) | _FENCE_BODY = `(?P<body>[\s\S]*?)`
constant _FENCE_END (line 311) | _FENCE_END = "```"
type Formater (line 319) | type Formater struct
method formatExtraction (line 344) | func (f *Formater) formatExtraction(nodes []*types.GraphNode, relation...
method parseOutput (line 378) | func (f *Formater) parseOutput(ctx context.Context, text string) ([]ma...
method ParseGraph (line 420) | func (f *Formater) ParseGraph(ctx context.Context, text string) (*type...
method rebuildGraph (line 468) | func (f *Formater) rebuildGraph(ctx context.Context, graph *types.Grap...
method extractContent (line 515) | func (f *Formater) extractContent(ctx context.Context, text string) st...
method addFences (line 554) | func (f *Formater) addFences(content string) string {
method isValidLanguageTag (line 559) | func (f *Formater) isValidLanguageTag(lang string, validTags map[Forma...
function NewFormater (line 331) | func NewFormater() *Formater {
FILE: internal/application/service/chat_pipline/filter_top_k.go
type PluginFilterTopK (line 10) | type PluginFilterTopK struct
method ActivationEvents (line 20) | func (p *PluginFilterTopK) ActivationEvents() []types.EventType {
method OnEvent (line 26) | func (p *PluginFilterTopK) OnEvent(ctx context.Context,
function NewPluginFilterTopK (line 13) | func NewPluginFilterTopK(eventManager *EventManager) *PluginFilterTopK {
FILE: internal/application/service/chat_pipline/into_chat_message.go
type PluginIntoChatMessage (line 15) | type PluginIntoChatMessage struct
method ActivationEvents (line 25) | func (p *PluginIntoChatMessage) ActivationEvents() []types.EventType {
method OnEvent (line 30) | func (p *PluginIntoChatMessage) OnEvent(ctx context.Context,
function NewPluginIntoChatMessage (line 18) | func NewPluginIntoChatMessage(eventManager *EventManager) *PluginIntoCha...
function getEnrichedPassageForChat (line 165) | func getEnrichedPassageForChat(ctx context.Context, result *types.Search...
function enrichContentWithImageInfo (line 184) | func enrichContentWithImageInfo(ctx context.Context, content string, ima...
FILE: internal/application/service/chat_pipline/load_history.go
type PluginLoadHistory (line 17) | type PluginLoadHistory struct
method ActivationEvents (line 41) | func (p *PluginLoadHistory) ActivationEvents() []types.EventType {
method OnEvent (line 47) | func (p *PluginLoadHistory) OnEvent(ctx context.Context,
function NewPluginLoadHistory (line 27) | func NewPluginLoadHistory(eventManager *EventManager,
FILE: internal/application/service/chat_pipline/memory.go
type MemoryPlugin (line 13) | type MemoryPlugin struct
method ActivationEvents (line 25) | func (p *MemoryPlugin) ActivationEvents() []types.EventType {
method OnEvent (line 32) | func (p *MemoryPlugin) OnEvent(
method handleRetrieval (line 48) | func (p *MemoryPlugin) handleRetrieval(
method handleStorage (line 86) | func (p *MemoryPlugin) handleStorage(
function NewMemoryPlugin (line 17) | func NewMemoryPlugin(eventManager *EventManager, memoryService interface...
FILE: internal/application/service/chat_pipline/merge.go
type PluginMerge (line 13) | type PluginMerge struct
method ActivationEvents (line 29) | func (p *PluginMerge) ActivationEvents() []types.EventType {
method OnEvent (line 43) | func (p *PluginMerge) OnEvent(ctx context.Context,
method selectInputResults (line 93) | func (p *PluginMerge) selectInputResults(ctx context.Context, chatMana...
method dedup (line 108) | func (p *PluginMerge) dedup(ctx context.Context, label string, results...
method injectHistoryResults (line 122) | func (p *PluginMerge) injectHistoryResults(
method groupAndMergeOverlapping (line 141) | func (p *PluginMerge) groupAndMergeOverlapping(ctx context.Context, re...
method resolveParentChunks (line 193) | func (p *PluginMerge) resolveParentChunks(
method collectParentImageInfo (line 282) | func (p *PluginMerge) collectParentImageInfo(
function NewPluginMerge (line 19) | func NewPluginMerge(eventManager *EventManager, chunkRepo interfaces.Chu...
FILE: internal/application/service/chat_pipline/merge_expand.go
method expandShortContextWithNeighbors (line 10) | func (p *PluginMerge) expandShortContextWithNeighbors(
function runeLen (line 255) | func runeLen(s string) int {
function mergeOrderedContent (line 260) | func mergeOrderedContent(prev, base, next string, maxLen int) string {
function concatNoOverlap (line 276) | func concatNoOverlap(a, b string) string {
function minInt (line 295) | func minInt(a, b int) int {
function containsID (line 302) | func containsID(ids []string, target string) bool {
method fetchChunksIfMissing (line 311) | func (p *PluginMerge) fetchChunksIfMissing(
FILE: internal/application/service/chat_pipline/merge_faq.go
method populateFAQAnswers (line 11) | func (p *PluginMerge) populateFAQAnswers(
function buildFAQAnswerContent (line 100) | func buildFAQAnswerContent(meta *types.FAQChunkMetadata) string {
FILE: internal/application/service/chat_pipline/merge_history.go
function filterHistoryResults (line 17) | func filterHistoryResults(
FILE: internal/application/service/chat_pipline/merge_overlap.go
method mergeOverlappingChunks (line 14) | func (p *PluginMerge) mergeOverlappingChunks(
function mergeImageInfo (line 75) | func mergeImageInfo(ctx context.Context, target *types.SearchResult, sou...
FILE: internal/application/service/chat_pipline/query_expansion.go
method runQueryExpansion (line 15) | func (p *PluginSearch) runQueryExpansion(ctx context.Context, chatManage...
method expandQueries (line 104) | func (p *PluginSearch) expandQueries(ctx context.Context, chatManage *ty...
function extractKeywords (line 183) | func extractKeywords(text string) []string {
function extractPhrases (line 195) | func extractPhrases(text string) []string {
function splitByDelimiters (line 208) | func splitByDelimiters(text string) []string {
function removeQuestionWords (line 222) | func removeQuestionWords(text string) string {
function tokenize (line 226) | func tokenize(text string) []string {
FILE: internal/application/service/chat_pipline/rerank.go
type PluginRerank (line 18) | type PluginRerank struct
method ActivationEvents (line 32) | func (p *PluginRerank) ActivationEvents() []types.EventType {
method OnEvent (line 37) | func (p *PluginRerank) OnEvent(ctx context.Context,
method rerank (line 197) | func (p *PluginRerank) rerank(ctx context.Context,
function NewPluginRerank (line 23) | func NewPluginRerank(eventManager *EventManager, modelService interfaces...
function ensureMetadata (line 274) | func ensureMetadata(m map[string]string) map[string]string {
function safeTopScore (line 281) | func safeTopScore(results []rerank.RankResult) float64 {
function compositeScore (line 289) | func compositeScore(sr *types.SearchResult, modelScore, baseScore float6...
function applyMMR (line 313) | func applyMMR(
function cleanPassageForRerank (line 446) | func cleanPassageForRerank(text string) string {
function getEnrichedPassage (line 481) | func getEnrichedPassage(ctx context.Context, result *types.SearchResult)...
function logRerankInputScoreSample (line 532) | func logRerankInputScoreSample(ctx context.Context, results []*types.Sea...
FILE: internal/application/service/chat_pipline/rerank_clean_test.go
function TestCleanPassageForRerank (line 7) | func TestCleanPassageForRerank(t *testing.T) {
FILE: internal/application/service/chat_pipline/rewrite.go
type PluginRewrite (line 24) | type PluginRewrite struct
method ActivationEvents (line 61) | func (p *PluginRewrite) ActivationEvents() []types.EventType {
method OnEvent (line 70) | func (p *PluginRewrite) OnEvent(ctx context.Context,
method updateUserMessageImageCaption (line 212) | func (p *PluginRewrite) updateUserMessageImageCaption(ctx context.Cont...
method loadHistory (line 241) | func (p *PluginRewrite) loadHistory(ctx context.Context, chatManage *t...
method selectModel (line 304) | func (p *PluginRewrite) selectModel(ctx context.Context, chatManage *t...
method buildPrompts (line 346) | func (p *PluginRewrite) buildPrompts(chatManage *types.ChatManage, his...
method parseRewriteOutput (line 377) | func (p *PluginRewrite) parseRewriteOutput(chatManage *types.ChatManag...
constant noSearchPrefix (line 35) | noSearchPrefix = "[NO_SEARCH]"
type rewriteOutput (line 38) | type rewriteOutput struct
function NewPluginRewrite (line 46) | func NewPluginRewrite(eventManager *EventManager,
function parseStructuredRewriteOutput (line 408) | func parseStructuredRewriteOutput(raw string) (rewriteOutput, bool) {
function parseStructuredRewriteOutputJSON (line 432) | func parseStructuredRewriteOutputJSON(content string) (rewriteOutput, bo...
function firstStringField (line 462) | func firstStringField(obj map[string]json.RawMessage, keys ...string) st...
function firstBoolField (line 477) | func firstBoolField(obj map[string]json.RawMessage, keys ...string) (boo...
function parseBoolJSON (line 490) | func parseBoolJSON(raw json.RawMessage) (bool, bool) {
function mergeImageDescAndOCR (line 514) | func mergeImageDescAndOCR(desc, ocr string) (string, bool) {
function formatConversationHistory (line 531) | func formatConversationHistory(historyList []*types.History) string {
FILE: internal/application/service/chat_pipline/search.go
type PluginSearch (line 17) | type PluginSearch struct
method ActivationEvents (line 53) | func (p *PluginSearch) ActivationEvents() []types.EventType {
method OnEvent (line 58) | func (p *PluginSearch) OnEvent(ctx context.Context,
method searchByTargets (line 217) | func (p *PluginSearch) searchByTargets(
method searchSingleTarget (line 365) | func (p *PluginSearch) searchSingleTarget(
method tryDirectChunkLoading (line 436) | func (p *PluginSearch) tryDirectChunkLoading(ctx context.Context, tena...
method searchWebIfEnabled (line 522) | func (p *PluginSearch) searchWebIfEnabled(ctx context.Context, chatMan...
function NewPluginSearch (line 28) | func NewPluginSearch(eventManager *EventManager,
function getSearchResultFromHistory (line 144) | func getSearchResultFromHistory(chatManage *types.ChatManage) []*types.S...
function removeDuplicateResults (line 161) | func removeDuplicateResults(results []*types.SearchResult) []*types.Sear...
function buildContentSignature (line 187) | func buildContentSignature(content string) string {
function logSearchScoreSample (line 191) | func logSearchScoreSample(ctx context.Context, action string, results []...
FILE: internal/application/service/chat_pipline/search_entity.go
type PluginSearchEntity (line 13) | type PluginSearchEntity struct
method ActivationEvents (line 36) | func (p *PluginSearchEntity) ActivationEvents() []types.EventType {
method OnEvent (line 41) | func (p *PluginSearchEntity) OnEvent(ctx context.Context,
function NewPluginSearchEntity (line 20) | func NewPluginSearchEntity(
function filterSeenChunk (line 184) | func filterSeenChunk(ctx context.Context, graph *types.GraphData, search...
function chunk2SearchResult (line 206) | func chunk2SearchResult(chunk *types.Chunk, knowledge *types.Knowledge) ...
FILE: internal/application/service/chat_pipline/search_parallel.go
type PluginSearchParallel (line 14) | type PluginSearchParallel struct
method ActivationEvents (line 84) | func (p *PluginSearchParallel) ActivationEvents() []types.EventType {
method OnEvent (line 89) | func (p *PluginSearchParallel) OnEvent(ctx context.Context,
function NewPluginSearchParallel (line 34) | func NewPluginSearchParallel(
FILE: internal/application/service/chat_pipline/stream_filter.go
type PluginStreamFilter (line 15) | type PluginStreamFilter struct
method ActivationEvents (line 25) | func (p *PluginStreamFilter) ActivationEvents() []types.EventType {
method OnEvent (line 30) | func (p *PluginStreamFilter) OnEvent(ctx context.Context,
method filterEventsWithPrefix (line 67) | func (p *PluginStreamFilter) filterEventsWithPrefix(
function NewPluginStreamFilter (line 18) | func NewPluginStreamFilter(eventManager *EventManager) *PluginStreamFilt...
FILE: internal/application/service/chat_pipline/tracing.go
type PluginTracing (line 17) | type PluginTracing struct
method ActivationEvents (line 27) | func (p *PluginTracing) ActivationEvents() []types.EventType {
method OnEvent (line 52) | func (p *PluginTracing) OnEvent(ctx context.Context,
method Search (line 79) | func (p *PluginTracing) Search(ctx context.Context,
method Rerank (line 104) | func (p *PluginTracing) Rerank(ctx context.Context,
method Merge (line 126) | func (p *PluginTracing) Merge(ctx context.Context,
method IntoChatMessage (line 145) | func (p *PluginTracing) IntoChatMessage(ctx context.Context,
method ChatCompletion (line 161) | func (p *PluginTracing) ChatCompletion(ctx context.Context,
method ChatCompletionStream (line 183) | func (p *PluginTracing) ChatCompletionStream(ctx context.Context,
method FilterTopK (line 232) | func (p *PluginTracing) FilterTopK(ctx context.Context,
method RewriteQuery (line 252) | func (p *PluginTracing) RewriteQuery(ctx context.Context,
method SearchParallel (line 268) | func (p *PluginTracing) SearchParallel(ctx context.Context,
function NewPluginTracing (line 20) | func NewPluginTracing(eventManager *EventManager) *PluginTracing {
FILE: internal/application/service/chunk.go
type chunkService (line 19) | type chunkService struct
method GetRepository (line 53) | func (s *chunkService) GetRepository() interfaces.ChunkRepository {
method CreateChunks (line 65) | func (s *chunkService
Condensed preview — 789 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,467K chars).
[
{
"path": ".env.example",
"chars": 6160,
"preview": "# 使用说明\n# 1. 复制此文件为 .env\n# 2. 替换所有占位符为实际值\n# 3. 确保 .env 文件不会被提交到版本控制系统 \n\n# ========== 镜像版本 ==========\n# WeKnora 镜像版本标签,可选值"
},
{
"path": ".gitignore",
"chars": 438,
"preview": "# 忽略所有隐藏文件和目录\n.*\n# 但不忽略示例文件\n!.env.example\n!.gitignore\n\n# 敏感文件\n*.pem\n*_key\n*_secret\n*.key\n*.crt\n\n# IDE和编辑器文件\n*.swp\n*.swo\n"
},
{
"path": "CHANGELOG.md",
"chars": 37514,
"preview": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n## [0.3.4] - 2026-03-19\n\n### 🚀 New Fe"
},
{
"path": "LICENSE",
"chars": 158243,
"preview": "Tencent is pleased to support the open source community by making this project available.\n\nCopyright (C) 2025 Tencent. A"
},
{
"path": "Makefile",
"chars": 7699,
"preview": ".PHONY: help build run test clean docker-build-app docker-build-docreader docker-build-frontend docker-build-all docker-"
},
{
"path": "README.md",
"chars": 27156,
"preview": "<p align=\"center\">\n <picture>\n <img src=\"./docs/images/logo.png\" alt=\"WeKnora Logo\" height=\"120\"/>\n </picture>\n</p>"
},
{
"path": "README_CN.md",
"chars": 13067,
"preview": "<p align=\"center\">\n <picture>\n <img src=\"./docs/images/logo.png\" alt=\"WeKnora Logo\" height=\"120\"/>\n </picture>\n</p>"
},
{
"path": "README_JA.md",
"chars": 15490,
"preview": "<p align=\"center\">\n <picture>\n <img src=\"./docs/images/logo.png\" alt=\"WeKnora Logo\" height=\"120\"/>\n </picture>\n</p>"
},
{
"path": "README_KO.md",
"chars": 14201,
"preview": "<p align=\"center\">\n <picture>\n <img src=\"./docs/images/logo.png\" alt=\"WeKnora Logo\" height=\"120\"/>\n </picture>\n</p>"
},
{
"path": "SECURITY.md",
"chars": 1522,
"preview": "# Security Policy\n\n## Reporting a Vulnerability\n\nThe WeKnora team takes security vulnerabilities seriously. \nWe appreci"
},
{
"path": "VERSION",
"chars": 6,
"preview": "0.3.4\n"
},
{
"path": "client/README.md",
"chars": 7898,
"preview": "# WeKnora HTTP 客户端\n\n这个包提供了与WeKnora服务进行交互的客户端库,支持所有基于HTTP的接口调用,使其他模块更方便地集成WeKnora服务,无需直接编写HTTP请求代码。\n\n## 主要功能\n\n该客户端包含以下主要功"
},
{
"path": "client/README_EN.md",
"chars": 5089,
"preview": "# WeKnora HTTP Client\n\nThis package provides a client library for interacting with WeKnora services, supporting all HTTP"
},
{
"path": "client/agent.go",
"chars": 6644,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The Agent related interfaces are u"
},
{
"path": "client/agent_manage.go",
"chars": 7536,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The Agent management interfaces ar"
},
{
"path": "client/chunk.go",
"chars": 8050,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// This package encapsulates CRUD ope"
},
{
"path": "client/client.go",
"chars": 2440,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// This package encapsulates CRUD ope"
},
{
"path": "client/evaluation.go",
"chars": 4924,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The Evaluation related interfaces "
},
{
"path": "client/example.go",
"chars": 7657,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"time\"\n)\n\n// ExampleUsage demonstrates the complete usage f"
},
{
"path": "client/faq.go",
"chars": 17903,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// FAQEntry represents a F"
},
{
"path": "client/go.mod",
"chars": 52,
"preview": "module github.com/Tencent/WeKnora/client\n\ngo 1.24.2\n"
},
{
"path": "client/go.sum",
"chars": 0,
"preview": ""
},
{
"path": "client/initialization.go",
"chars": 8290,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"time\"\n)\n\n// InitializationConfig represents th"
},
{
"path": "client/knowledge.go",
"chars": 20242,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The Knowledge related interfaces a"
},
{
"path": "client/knowledgebase.go",
"chars": 13432,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The KnowledgeBase related interfac"
},
{
"path": "client/mcp_service.go",
"chars": 6543,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n)\n\n// MCPTransportType represents the transport "
},
{
"path": "client/message.go",
"chars": 6690,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The Message related interfaces are"
},
{
"path": "client/model.go",
"chars": 5443,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The Model related interfaces are u"
},
{
"path": "client/organization.go",
"chars": 22985,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"time\"\n)\n\n// Organization represents a collaboration "
},
{
"path": "client/session.go",
"chars": 15938,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The Session related interfaces are"
},
{
"path": "client/skill.go",
"chars": 853,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"net/http\"\n)\n\n// SkillInfo represents skill metadata\ntype SkillInfo struct {\n\tName "
},
{
"path": "client/system.go",
"chars": 5692,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/http\"\n)\n\n// SystemInfo represents system version and configur"
},
{
"path": "client/tag.go",
"chars": 5341,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// Tag represents a knowledge ba"
},
{
"path": "client/tenant.go",
"chars": 7169,
"preview": "// Package client provides the implementation for interacting with the WeKnora API\n// The Tenant related interfaces are "
},
{
"path": "client/web_search.go",
"chars": 822,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/http\"\n)\n\n// WebSearchProvider represents a web search provide"
},
{
"path": "cmd/download/duckdb/duckdb.go",
"chars": 623,
"preview": "package main\n\nimport (\n\t\"context\"\n\t\"database/sql\"\n\n\t_ \"github.com/duckdb/duckdb-go/v2\"\n)\n\nfunc downloadSpatial() {\n\tctx "
},
{
"path": "config/builtin_agents.yaml",
"chars": 4242,
"preview": "# Built-in Agent Configuration with i18n support\n# Each agent has localized name, description, avatar, and config overri"
},
{
"path": "config/config.yaml",
"chars": 6219,
"preview": "# Server configuration\nserver:\n port: 8080\n host: \"0.0.0.0\"\n\n# Conversation service configuration\n# NOTE: Prompt conte"
},
{
"path": "config/prompt_templates/agent_system_prompt.yaml",
"chars": 14423,
"preview": "# Agent system prompt templates\n# These are the default system prompts for Agent mode (ReAct workflow)\ntemplates:\n - id"
},
{
"path": "config/prompt_templates/context_template.yaml",
"chars": 3657,
"preview": "# Context templates\ntemplates:\n - id: \"default_context\"\n name: \"Standard Template\"\n description: \"Standard contex"
},
{
"path": "config/prompt_templates/fallback.yaml",
"chars": 4821,
"preview": "# Fallback templates\n# Contains both fixed-response templates and model-fallback prompt templates.\n# Fixed responses: us"
},
{
"path": "config/prompt_templates/generate_questions.yaml",
"chars": 1797,
"preview": "# Generate questions prompt templates\n# Used to generate questions for document chunks to improve recall\ntemplates:\n - "
},
{
"path": "config/prompt_templates/generate_session_title.yaml",
"chars": 505,
"preview": "# Generate session title prompt templates\ntemplates:\n - id: \"default_session_title\"\n name: \"Standard Title\"\n desc"
},
{
"path": "config/prompt_templates/generate_summary.yaml",
"chars": 1631,
"preview": "# Generate document summary prompt templates\ntemplates:\n - id: \"default_summary\"\n name: \"Standard Summary\"\n descr"
},
{
"path": "config/prompt_templates/graph_extraction.yaml",
"chars": 11390,
"preview": "# Graph extraction prompt templates\n# Used for knowledge graph entity and relationship extraction\ntemplates:\n - id: \"de"
},
{
"path": "config/prompt_templates/keywords_extraction.yaml",
"chars": 1916,
"preview": "# Keywords extraction prompt templates\ntemplates:\n - id: \"default_keywords_extraction\"\n name: \"Standard Keywords Ext"
},
{
"path": "config/prompt_templates/rewrite.yaml",
"chars": 6394,
"preview": "# Rewrite prompt templates\n# Each template contains both system (content) and user prompt parts.\n# content = system prom"
},
{
"path": "config/prompt_templates/system_prompt.yaml",
"chars": 7838,
"preview": "# System prompt templates\ntemplates:\n - id: \"default_kb\"\n name: \"Knowledge Base Q&A\"\n description: \"Standard temp"
},
{
"path": "dataset/README",
"chars": 6997,
"preview": "# QA Dataset Sampling Tool\n\nA comprehensive tool for sampling QA datasets and generating answers using OpenAI's GPT mode"
},
{
"path": "dataset/README_zh.md",
"chars": 4834,
"preview": "# QA数据集采样工具\n\n一个全面的QA数据集采样工具,使用OpenAI的GPT模型生成答案。该工具帮助您从大规模数据集(如MS MARCO)创建高质量的问答数据集。\n\n## 功能特性\n\n- **智能采样**:智能地从大型数据集中采样查询、"
},
{
"path": "dataset/qa_dataset.py",
"chars": 12527,
"preview": "\"\"\"\nQA Dataset Sampling Tool\n\n```\npip install pandas pyarrow\npip install openai\n```\n\n# 采样数据\npython dataset/qa_dataset.py"
},
{
"path": "docker/Dockerfile.app",
"chars": 3415,
"preview": "# Build stage\nFROM golang:1.24-bookworm AS builder\n\nWORKDIR /app\n\n# 通过构建参数接收敏感信息\nARG GOPRIVATE_ARG\nARG GOPROXY_ARG\nARG G"
},
{
"path": "docker/Dockerfile.docreader",
"chars": 3873,
"preview": "# =========================\n# 构建阶段(轻量化:仅文档解析 + 图片提取,无 OCR/VLM)\n# =========================\nFROM python:3.10.18-bookworm "
},
{
"path": "docker/Dockerfile.sandbox",
"chars": 1107,
"preview": "# WeKnora Sandbox Image\n# Pre-built environment for executing agent skill scripts in Docker sandbox\n# Multi-stage build,"
},
{
"path": "docker/config/supervisord.conf",
"chars": 640,
"preview": "[supervisord]\nnodaemon=true\nlogfile=/var/log/supervisord.log\nlogfile_maxbytes=50MB\nlogfile_backups=10\nloglevel=info\npidf"
},
{
"path": "docker-compose.dev.yml",
"chars": 5054,
"preview": "# 开发环境配置 - 只启动基础设施服务,app 和 frontend 在本地运行\nservices:\n # 只启动依赖的基础设施服务\n postgres:\n image: paradedb/paradedb:v0.21.4-pg"
},
{
"path": "docker-compose.yml",
"chars": 10984,
"preview": "services:\n frontend:\n image: wechatopenai/weknora-ui:${WEKNORA_VERSION:-latest}\n build:\n context: ./frontend"
},
{
"path": "docreader/Makefile",
"chars": 442,
"preview": ".PHONY: proto build run docker-build docker-run clean\n\n# 生成 protobuf 代码\nproto:\n\t@echo \"Generating protobuf code...\"\n\t@sh"
},
{
"path": "docreader/README.md",
"chars": 4413,
"preview": "# DocReader Service\n\nDocReader 是 WeKnora 项目中负责文档解析和处理的 gRPC 服务。它支持多种文档格式的读取、OCR 识别、多模态处理等功能。\n\n## Docker Compose 环境变量配置\n\n"
},
{
"path": "docreader/client/client.go",
"chars": 2582,
"preview": "package client\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/Tencent/WeKnora/docreader/proto\"\n\t\"google."
},
{
"path": "docreader/client/client_test.go",
"chars": 1945,
"preview": "package client\n\nimport (\n\t\"context\"\n\t\"log\"\n\t\"os\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/Tencent/WeKnora/docreader/proto\"\n)\n\nfu"
},
{
"path": "docreader/config.py",
"chars": 3291,
"preview": "import logging\nimport os\nfrom dataclasses import dataclass\nfrom typing import Any, Dict, Iterable, Optional, Tuple\n\nlogg"
},
{
"path": "docreader/main.py",
"chars": 7153,
"preview": "import logging\nimport os\nimport re\nimport sys\nimport traceback\nimport uuid\nfrom concurrent import futures\nfrom typing im"
},
{
"path": "docreader/models/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "docreader/models/document.py",
"chars": 2567,
"preview": "\"\"\"Chunk document schema.\"\"\"\n\nimport json\nfrom typing import Any, Dict, List\n\nfrom pydantic import BaseModel, Field\n\n\ncl"
},
{
"path": "docreader/models/read_config.py",
"chars": 493,
"preview": "from dataclasses import dataclass\n\n\n@dataclass\nclass ChunkingConfig:\n \"\"\"Legacy config kept for backward compatibilit"
},
{
"path": "docreader/ocr/__init__.py",
"chars": 1074,
"preview": "import logging\nimport threading\nfrom typing import Dict\n\nfrom docreader.ocr.base import DummyOCRBackend, OCRBackend\nfrom"
},
{
"path": "docreader/ocr/base.py",
"chars": 696,
"preview": "import logging\nfrom abc import ABC, abstractmethod\nfrom typing import Union\n\nfrom PIL import Image\n\nlogger = logging.get"
},
{
"path": "docreader/ocr/paddle.py",
"chars": 6458,
"preview": "import io\nimport logging\nimport os\nimport platform\nimport subprocess\nfrom typing import Union\n\nimport numpy as np\nfrom P"
},
{
"path": "docreader/ocr/vlm.py",
"chars": 2738,
"preview": "import logging\nfrom typing import Union\n\nfrom openai import OpenAI\nfrom PIL import Image\n\nfrom docreader.config import C"
},
{
"path": "docreader/parser/__init__.py",
"chars": 972,
"preview": "\"\"\"\nParser module for WeKnora document processing system.\n\nThis module provides document parsers for various file format"
},
{
"path": "docreader/parser/base_parser.py",
"chars": 1747,
"preview": "# -*- coding: utf-8 -*-\nimport logging\nimport os\nfrom abc import ABC, abstractmethod\nfrom typing import Optional\n\nfrom d"
},
{
"path": "docreader/parser/chain_parser.py",
"chars": 6793,
"preview": "\"\"\"\nChain Parser Module\n\nThis module provides two chain-of-responsibility pattern implementations for document parsing:\n"
},
{
"path": "docreader/parser/doc_parser.py",
"chars": 11876,
"preview": "import logging\nimport os\nimport subprocess\nfrom typing import List, Optional\n\nimport textract\n\nfrom docreader.config imp"
},
{
"path": "docreader/parser/docx2_parser.py",
"chars": 849,
"preview": "import logging\n\nfrom docreader.parser.chain_parser import FirstParser\nfrom docreader.parser.docx_parser import DocxParse"
},
{
"path": "docreader/parser/docx_parser.py",
"chars": 55674,
"preview": "import logging\nimport os\nimport re\nimport tempfile\nimport threading\nimport time\nimport traceback\nfrom concurrent.futures"
},
{
"path": "docreader/parser/excel_parser.py",
"chars": 4248,
"preview": "\"\"\"\nExcel Parser Module\n\nThis module provides functionality to parse Excel files (.xlsx, .xls) into\nstructured Document "
},
{
"path": "docreader/parser/image_parser.py",
"chars": 884,
"preview": "import base64\nimport logging\nimport os\n\nfrom docreader.models.document import Document\nfrom docreader.parser.base_parser"
},
{
"path": "docreader/parser/markdown_parser.py",
"chars": 14051,
"preview": "\"\"\"\nMarkdown Parser Module\n\nThis module provides comprehensive Markdown parsing functionality including:\n- Table formatt"
},
{
"path": "docreader/parser/markitdown_parser.py",
"chars": 1401,
"preview": "import io\nimport logging\n\nfrom markitdown import MarkItDown\n\nfrom docreader.models.document import Document\nfrom docread"
},
{
"path": "docreader/parser/parser.py",
"chars": 2483,
"preview": "import logging\nfrom typing import Any, Optional\n\nfrom docreader.models.document import Document\nfrom docreader.parser.re"
},
{
"path": "docreader/parser/pdf_parser.py",
"chars": 576,
"preview": "from docreader.parser.chain_parser import FirstParser\nfrom docreader.parser.markitdown_parser import MarkitdownParser\n\n\n"
},
{
"path": "docreader/parser/registry.py",
"chars": 5543,
"preview": "import logging\nfrom typing import Any, Callable, Dict, List, Optional, Tuple, Type\n\nfrom docreader.parser.base_parser im"
},
{
"path": "docreader/parser/storage.py",
"chars": 12114,
"preview": "# -*- coding: utf-8 -*-\nimport io\nimport logging\nimport os\nimport traceback\nimport uuid\nfrom abc import ABC, abstractmet"
},
{
"path": "docreader/parser/web_parser.py",
"chars": 4992,
"preview": "import asyncio\nimport logging\n\nfrom playwright.async_api import async_playwright\nfrom trafilatura import extract\n\nfrom d"
},
{
"path": "docreader/proto/docreader.pb.go",
"chars": 19476,
"preview": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.36.6\n// \tprotoc v6.33.4\n// sou"
},
{
"path": "docreader/proto/docreader.proto",
"chars": 1491,
"preview": "syntax = \"proto3\";\n\npackage docreader;\n\noption go_package = \"github.com/Tencent/WeKnora/internal/docreader/proto\";\n\nserv"
},
{
"path": "docreader/proto/docreader_grpc.pb.go",
"chars": 5830,
"preview": "// Code generated by protoc-gen-go-grpc. DO NOT EDIT.\n// versions:\n// - protoc-gen-go-grpc v1.5.1\n// - protoc "
},
{
"path": "docreader/proto/docreader_pb2.py",
"chars": 5041,
"preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler. DO NOT EDIT!\n# NO CHECKED-IN PROTOBUF GENCODE\n# so"
},
{
"path": "docreader/proto/docreader_pb2.pyi",
"chars": 5262,
"preview": "from google.protobuf.internal import containers as _containers\nfrom google.protobuf import descriptor as _descriptor\nfro"
},
{
"path": "docreader/proto/docreader_pb2_grpc.py",
"chars": 5095,
"preview": "# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!\n\"\"\"Client and server classes corresponding to prot"
},
{
"path": "docreader/pyproject.toml",
"chars": 930,
"preview": "[project]\nname = \"docreader\"\nversion = \"0.1.0\"\ndescription = \"Add your description here\"\nreadme = \"README.md\"\nrequires-p"
},
{
"path": "docreader/scripts/download_deps.py",
"chars": 2150,
"preview": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\nimport sys\nimport os\nimport logging\nfrom paddleocr import PaddleOCR\n\n# 添加"
},
{
"path": "docreader/scripts/generate_proto.sh",
"chars": 1039,
"preview": "#!/bin/bash\nset -ex\n\n# 设置目录\nPROTO_DIR=\"docreader/proto\"\nPYTHON_OUT=\"docreader/proto\"\nGO_OUT=\"docreader/proto\"\n\n# 生成Pytho"
},
{
"path": "docreader/splitter/header_hook.py",
"chars": 3692,
"preview": "import re\nfrom typing import Callable, Dict, List, Match, Pattern, Union\n\nfrom pydantic import BaseModel, Field\n\n\nclass "
},
{
"path": "docreader/splitter/splitter.py",
"chars": 22804,
"preview": "\"\"\"Token splitter.\n\nThis module provides text splitting functionality with support for:\n- Configurable chunk size and ov"
},
{
"path": "docreader/testdata/test.html",
"chars": 1157,
"preview": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-wi"
},
{
"path": "docreader/testdata/test.md",
"chars": 438,
"preview": "# 测试 Markdown 文档\n\n这是一个测试 Markdown 文档,用于测试 Markdown 解析功能。\n\n## 包含图片\n\n -> List[str]:\n "
},
{
"path": "docreader/utils/tempfile.py",
"chars": 2385,
"preview": "import logging\nimport os\nimport tempfile\n\nlogger = logging.getLogger(__name__)\n\n\nclass TempFileContext:\n def __init__"
},
{
"path": "docs/BUILTIN_MCP_SERVICES.md",
"chars": 3538,
"preview": "# 内置 MCP 服务管理指南\n\n## 概述\n\n内置 MCP 服务是系统级别的 MCP(Model Context Protocol)服务配置,对所有租户可见,但敏感信息会被隐藏,且不可编辑或删除。内置 MCP 服务通常用于提供系统默认的外"
},
{
"path": "docs/BUILTIN_MODELS.md",
"chars": 3872,
"preview": "# 内置模型管理指南\n\n## 概述\n\n内置模型是系统级别的模型配置,对所有租户可见,但敏感信息会被隐藏,且不可编辑或删除。内置模型通常用于提供系统默认的模型配置,确保所有租户都能使用统一的模型服务。\n\n## 内置模型特性\n\n- **所有租户"
},
{
"path": "docs/IM集成开发文档.md",
"chars": 30992,
"preview": "# IM 集成开发文档\n\nWeKnora 的 IM 集成模块将企业即时通讯平台(企业微信、飞书、Slack)接入 WeKnora 知识问答管道,支持在 IM 中直接向 AI 提问并获得实时流式回答。\n\nIM 渠道绑定到 Agent,一个 A"
},
{
"path": "docs/KnowledgeGraph.md",
"chars": 478,
"preview": "# WeKnora 知识图谱\n\n## 快速开始\n\n- .env 配置相关环境变量\n - 启用 Neo4j: `NEO4J_ENABLE=true`\n - Neo4j URI: `NEO4J_URI=bolt://neo4j:76"
},
{
"path": "docs/MCP功能使用说明.md",
"chars": 1138,
"preview": "## MCP 功能使用说明\n\n### 功能概述\n- MCP(Model Context Protocol)让 WeKnora 可以安全地连接外部工具或数据源,扩展 Agent 在推理时可调用的能力。\n- 在前端 `设置 > MCP 服务`("
},
{
"path": "docs/QA.md",
"chars": 3293,
"preview": "# 常见问题\n\n## 1. 如何查看日志?\n```bash\ndocker compose logs -f app docreader postgres\n```\n\n## 2. 如何启动和停止服务?\n```bash\n# 启动服务\n./scrip"
},
{
"path": "docs/ROADMAP.md",
"chars": 981,
"preview": "# WeKnora Roadmap\n\n本文档描述 WeKnora 的产品规划与计划方向,会随项目进展持续更新。\n\n## 轻量化部署\n- [ ] WeKnora 官方提供原子化调用接口(Embedding、ReRank、LLM、文档解析等),"
},
{
"path": "docs/WeKnora.md",
"chars": 13225,
"preview": "## 介绍\nWeKora 是一个可立即在生产环境投入的企业级RAG框架,实现智能文档理解和检索功能。该系统采用模块化设计,将文档理解、向量存储、推理文件等功能分离。\n\n\n\n---\n\n## Pi"
},
{
"path": "docs/agent-skills.md",
"chars": 13030,
"preview": "# Agent Skills 文档\n\n## 概述\n\nAgent Skills 是一种让 Agent 通过阅读\"使用说明书\"来学习新能力的扩展机制。与传统的硬编码工具不同,Skills 通过注入到 System Prompt 来扩展 Agen"
},
{
"path": "docs/api/README.md",
"chars": 1876,
"preview": "# WeKnora API 文档\n\n## 目录\n\n- [概述](#概述)\n- [基础信息](#基础信息)\n- [认证机制](#认证机制)\n- [错误处理](#错误处理)\n- [API 概览](#api-概览)\n\n## 概述\n\nWeKnora"
},
{
"path": "docs/api/agent.md",
"chars": 12430,
"preview": "# 智能体(Agent)管理 API\n\n[返回目录](./README.md)\n\n## 概述\n\n智能体 API 用于管理自定义智能体(Custom Agent)。系统提供了内置智能体,同时支持用户创建自定义智能体来满足不同的业务场景需求。\n"
},
{
"path": "docs/api/chat.md",
"chars": 4738,
"preview": "# 聊天功能 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ---- | ----------------"
},
{
"path": "docs/api/chunk.md",
"chars": 5686,
"preview": "# 分块管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | --------------"
},
{
"path": "docs/api/evaluation.md",
"chars": 4529,
"preview": "# 评估功能 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ---- | ------------- | -------------------"
},
{
"path": "docs/api/faq.md",
"chars": 12791,
"preview": "# FAQ管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------"
},
{
"path": "docs/api/initialization.md",
"chars": 8677,
"preview": "# 初始化配置 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n"
},
{
"path": "docs/api/knowledge-base.md",
"chars": 12887,
"preview": "# 知识库管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | ----"
},
{
"path": "docs/api/knowledge-search.md",
"chars": 1814,
"preview": "# 知识搜索 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ---- | ------------------ | -------- |\n| POST | `/"
},
{
"path": "docs/api/knowledge.md",
"chars": 17873,
"preview": "# 知识管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | ----"
},
{
"path": "docs/api/mcp-service.md",
"chars": 9626,
"preview": "# MCP Service API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | ---"
},
{
"path": "docs/api/message.md",
"chars": 8664,
"preview": "# 消息管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | -------------"
},
{
"path": "docs/api/model.md",
"chars": 14785,
"preview": "# 模型管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | ---------------------"
},
{
"path": "docs/api/organization.md",
"chars": 21688,
"preview": "# 组织管理 API\n\n[返回目录](./README.md)\n\n## 组织 CRUD\n\n| 方法 | 路径 | 描述 |\n| ------ | ------------"
},
{
"path": "docs/api/session.md",
"chars": 11629,
"preview": "# 会话管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | -----"
},
{
"path": "docs/api/skill.md",
"chars": 896,
"preview": "# Skills API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ---- | --------- | ------------------ |\n| GET "
},
{
"path": "docs/api/system.md",
"chars": 4699,
"preview": "# 系统管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | ----------"
},
{
"path": "docs/api/tag.md",
"chars": 3695,
"preview": "# 标签管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | ----"
},
{
"path": "docs/api/tenant.md",
"chars": 9605,
"preview": "# 租户管理 API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ------ | -------------- | -------------"
},
{
"path": "docs/api/web-search.md",
"chars": 1012,
"preview": "# Web Search API\n\n[返回目录](./README.md)\n\n| 方法 | 路径 | 描述 |\n| ---- | -----------------"
},
{
"path": "docs/docs.go",
"chars": 369300,
"preview": "// Package docs Code generated by swaggo/swag. DO NOT EDIT\npackage docs\n\nimport \"github.com/swaggo/swag\"\n\nconst docTempl"
},
{
"path": "docs/swagger.json",
"chars": 368617,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"description\": \"WeKnora 知识库管理系统 API 文档\",\n \"title\": \"WeKnora API\",\n "
},
{
"path": "docs/swagger.yaml",
"chars": 180977,
"preview": "basePath: /api/v1\ndefinitions:\n github_com_Tencent_WeKnora_internal_errors.AppError:\n properties:\n code:\n "
},
{
"path": "docs/使用其他向量数据库.md",
"chars": 5279,
"preview": "### 如何集成新的向量数据库\n\n本文提供了向 WeKnora 项目添加新向量数据库支持的完整指南。通过实现标准化接口和遵循结构化流程,开发者可以高效地集成自定义向量数据库。\n\n### 集成流程\n\n#### 1. 实现基础检索引擎接口\n\n首"
},
{
"path": "docs/共享空间说明.md",
"chars": 4073,
"preview": "# 共享空间说明文档\n\n本文档说明 WeKnora 中的**共享空间**功能,包括空间创建与加入、成员角色与权限、知识库与智能体共享规则、智能体停用机制,以及用户对知识库的最终访问权限计算方式。\n\n---\n\n## 一、共享空间概述\n\n###"
},
{
"path": "docs/开发指南.md",
"chars": 4282,
"preview": "# WeKnora 开发指南\n\n## 快速开发模式(推荐)\n\n如果你需要频繁修改 `app` 或 `frontend` 代码,**不需要每次都重新构建 Docker 镜像**,可以使用本地开发模式。\n\n### 方式一:使用 Make 命令("
},
{
"path": "docs/开启知识图谱功能.md",
"chars": 1507,
"preview": "# 开启知识图谱功能指南\n\n本文档介绍如何在 WeKnora 中启用并验证知识图谱(Neo4j)功能,帮助你完成从环境准备到前端配置的全流程。\n\n## 前置条件\n\n- 已完成 WeKnora 后端与前端的基础部署。\n- 具备可用的 Dock"
},
{
"path": "docs/快速开发模式说明.md",
"chars": 2869,
"preview": "# 快速开发模式说明\n\n解决开发流程中,每次修改 `app`(后端)或 `frontend`(前端)代码后,都需要打包Docker镜像的问题,实现这两个模块的热更新\n\n\n## 🚀 使用方法\n\n### 方式 1:使用 Make 命令(推荐)\n"
},
{
"path": "examples/skills/README.md",
"chars": 1321,
"preview": "# Skills 示例\n\n本目录包含 Agent Skills 功能的示例。\n\n## 目录结构\n\n```\nskills/\n├── README.md # 本文件\n└── pdf-processing/ "
},
{
"path": "examples/skills/pdf-processing/FORMS.md",
"chars": 882,
"preview": "# PDF Form Filling Guide\n\nThis guide covers how to fill PDF forms programmatically.\n\n## Prerequisites\n\nInstall required "
},
{
"path": "examples/skills/pdf-processing/SKILL.md",
"chars": 1113,
"preview": "---\nname: pdf-processing\ndescription: Extract text and tables from PDF files, fill forms, merge documents. Use when work"
},
{
"path": "examples/skills/pdf-processing/scripts/analyze_form.py",
"chars": 1349,
"preview": "#!/usr/bin/env python3\n\"\"\"\nAnalyze PDF form fields and output their structure.\nUsage: python analyze_form.py <pdf_file>\n"
},
{
"path": "examples/skills/pdf-processing/scripts/extract_text.py",
"chars": 1265,
"preview": "#!/usr/bin/env python3\n\"\"\"\nExtract text from PDF files.\nUsage: python extract_text.py <pdf_file> [--page N]\n\"\"\"\n\nimport "
},
{
"path": "frontend/.gitignore",
"chars": 317,
"preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\n.DS_Stor"
},
{
"path": "frontend/Dockerfile",
"chars": 718,
"preview": "# 构建阶段\nFROM node:24-alpine AS build-stage\n\nWORKDIR /app\n\n# 设置环境变量,忽略类型检查错误\nENV NODE_OPTIONS=\"--max-old-space-size=4096\"\n"
},
{
"path": "frontend/docker-entrypoint.sh",
"chars": 505,
"preview": "#!/bin/sh\n\n# 生成运行时配置文件,注入环境变量到前端\ncat > /usr/share/nginx/html/config.js << EOF\nwindow.__RUNTIME_CONFIG__ = {\n MAX_FILE_S"
},
{
"path": "frontend/env.d.ts",
"chars": 304,
"preview": "/// <reference types=\"vite/client\" />\n// 配置这个文件是 解决错误:找不到模块“@/views/login/index.vue”或其相应的类型声明。ts(2307)\n// 这段代码告诉 TypeScr"
},
{
"path": "frontend/index.html",
"chars": 1014,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <title>WeKnora</title>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" "
},
{
"path": "frontend/nginx.conf",
"chars": 2301,
"preview": "server {\n listen 80;\n server_name localhost;\n # Default 50M, configured via MAX_FILE_SIZE_MB env var\n client"
},
{
"path": "frontend/package.json",
"chars": 1627,
"preview": "{\n \"name\": \"knowledage-base\",\n \"version\": \"0.3.4\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"v"
},
{
"path": "frontend/public/config.js",
"chars": 102,
"preview": "// 运行时配置(本地开发默认值,Docker 环境会被 entrypoint 脚本覆盖)\nwindow.__RUNTIME_CONFIG__ = {\n MAX_FILE_SIZE_MB: 50\n};\n"
},
{
"path": "frontend/src/App.vue",
"chars": 1282,
"preview": "<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport ManualKnowledgeEditor "
},
{
"path": "frontend/src/api/agent/index.ts",
"chars": 6298,
"preview": "import { get, post, put, del } from \"../../utils/request\";\n\n// 智能体配置\nexport interface CustomAgentConfig {\n // ===== 基础设"
},
{
"path": "frontend/src/api/auth/index.ts",
"chars": 5201,
"preview": "import { post, get, put } from '@/utils/request'\nimport i18n from '@/i18n'\n\nconst t = (key: string) => i18n.global.t(key"
},
{
"path": "frontend/src/api/chat/index.ts",
"chars": 2058,
"preview": "import { get, post, put, del, postChat } from \"../../utils/request\";\n\n\n\nexport async function createSessions(data = {}) "
},
{
"path": "frontend/src/api/chat/streame.ts",
"chars": 6737,
"preview": "import { fetchEventSource } from '@microsoft/fetch-event-source'\nimport { ref, type Ref, onUnmounted, nextTick } from 'v"
},
{
"path": "frontend/src/api/chat-history.ts",
"chars": 1959,
"preview": "import { get, put, post } from '@/utils/request'\n\n// ChatHistoryConfig represents the chat history KB configuration for "
},
{
"path": "frontend/src/api/initialization/index.ts",
"chars": 16514,
"preview": "import { get, post, put } from '../../utils/request';\nimport i18n from '@/i18n'\n\nconst t = (key: string) => i18n.global."
},
{
"path": "frontend/src/api/knowledge-base/index.ts",
"chars": 10779,
"preview": "import { get, post, put, del, postUpload, getDown } from \"../../utils/request\";\n\n// 知识库管理 API(列表、创建、获取、更新、删除、复制)\nexport "
},
{
"path": "frontend/src/api/mcp-service.ts",
"chars": 2997,
"preview": "import { get, post, put, del } from '@/utils/request'\n\nexport interface MCPService {\n id: string\n tenant_id?: number\n "
},
{
"path": "frontend/src/api/model/index.ts",
"chars": 3650,
"preview": "import { get, post, put, del } from '../../utils/request';\nimport i18n from '@/i18n'\n\nconst t = (key: string) => i18n.gl"
},
{
"path": "frontend/src/api/organization/index.ts",
"chars": 22972,
"preview": "import { get, post, put, del } from '@/utils/request'\n\n// Organization types\nexport interface Organization {\n id: strin"
},
{
"path": "frontend/src/api/retrieval.ts",
"chars": 695,
"preview": "import { get, put } from '@/utils/request'\n\n// RetrievalConfig represents the global retrieval/search configuration for "
},
{
"path": "frontend/src/api/skill/index.ts",
"chars": 310,
"preview": "import { get } from \"../../utils/request\";\n\n// Skill信息\nexport interface SkillInfo {\n name: string;\n description: strin"
},
{
"path": "frontend/src/api/system/index.ts",
"chars": 7100,
"preview": "import { get, post, put } from '@/utils/request'\n\nexport interface SystemInfo {\n version: string\n edition?: string\n c"
},
{
"path": "frontend/src/api/tenant/index.ts",
"chars": 2086,
"preview": "import { get } from '@/utils/request'\nimport i18n from '@/i18n'\n\nconst t = (key: string) => i18n.global.t(key)\n\n// 租户信息接"
},
{
"path": "frontend/src/api/web-search.ts",
"chars": 1088,
"preview": "import { get, put } from '@/utils/request'\n\n// WebSearchProviderConfig represents information about a web search provide"
},
{
"path": "frontend/src/assets/dropdown-menu.less",
"chars": 7967,
"preview": "/**\n * 全局统一下拉菜单样式\n * \n * 适用于所有场景的 popup/dropdown 菜单,包括:\n * - 卡片操作菜单(知识库、智能体、组织)\n * - 文档操作菜单\n * - 对话会话菜单\n * - 上传操作菜单\n * \n"
},
{
"path": "frontend/src/assets/fonts.css",
"chars": 153,
"preview": "@font-face {\n font-family: 'TencentSans';\n src: url('fonts/TencentSans.ttf') format('truetype');\n font-weight: "
},
{
"path": "frontend/src/assets/theme/theme.css",
"chars": 19670,
"preview": ":root,:root[theme-mode=\"light\"]{ --brand-main: var(--td-brand-color-4); --td-brand-color-light: var(--td-brand-col"
},
{
"path": "frontend/src/components/AgentAvatar.vue",
"chars": 4054,
"preview": "<template>\n <div \n class=\"agent-avatar\" \n :style=\"avatarStyle\"\n :class=\"{ 'agent-avatar-small': size === 'smal"
},
{
"path": "frontend/src/components/AgentSelector.vue",
"chars": 26197,
"preview": "<template>\n <Teleport to=\"body\">\n <div v-if=\"visible\" class=\"agent-selector-overlay\" @click=\"$emit('close')\">\n "
},
{
"path": "frontend/src/components/AgentShareSettings.vue",
"chars": 15460,
"preview": "<template>\n <div class=\"section-content\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">{{ $t('organ"
},
{
"path": "frontend/src/components/FAQTagTooltip.vue",
"chars": 6519,
"preview": "<template>\n <div \n ref=\"wrapperRef\"\n class=\"faq-tag-wrapper\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\""
},
{
"path": "frontend/src/components/IMChannelPanel.vue",
"chars": 19356,
"preview": "<template>\n <div class=\"section-content\">\n <!-- Channel list header -->\n <div class=\"channels-section\">\n <di"
},
{
"path": "frontend/src/components/Input-field.vue",
"chars": 91859,
"preview": "<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted, computed, watch, nextTick, h } from \"vue\";\nimport { useRo"
},
{
"path": "frontend/src/components/KnowledgeBaseSelector.vue",
"chars": 14854,
"preview": "<template>\n <div v-if=\"visible\" class=\"kb-overlay\" @click=\"close\">\n <div class=\"kb-dropdown\" @click.stop @wheel.stop"
},
{
"path": "frontend/src/components/ListSpaceSidebar.vue",
"chars": 15134,
"preview": "<template>\n <div\n ref=\"sidebarRef\"\n class=\"list-space-sidebar\"\n :class=\"{ expanded: isExpanded, dragging: isDr"
},
{
"path": "frontend/src/components/MentionSelector.vue",
"chars": 19183,
"preview": "<template>\n <div v-if=\"visible\" class=\"mention-menu\" :style=\"style\" ref=\"menuRef\" @click.stop @scroll=\"onScroll\">\n <"
},
{
"path": "frontend/src/components/ModelEditorDialog.vue",
"chars": 42443,
"preview": "<template>\n <Teleport to=\"body\">\n <Transition name=\"modal\">\n <div v-if=\"dialogVisible\" class=\"model-editor-over"
},
{
"path": "frontend/src/components/ModelSelector.vue",
"chars": 3786,
"preview": "<template>\n <div class=\"model-selector\">\n <t-select\n :value=\"selectedModelId\"\n @change=\"handleModelChange\""
},
{
"path": "frontend/src/components/PromptTemplateSelector.vue",
"chars": 9083,
"preview": "<template>\n <div class=\"prompt-template-selector\" :class=\"{ 'position-corner': position === 'corner' }\">\n <div class"
},
{
"path": "frontend/src/components/ShareKnowledgeBaseDialog.vue",
"chars": 13538,
"preview": "<template>\n <t-dialog\n v-model:visible=\"dialogVisible\"\n :header=\"$t('organization.share.title')\"\n width=\"520px"
},
{
"path": "frontend/src/components/SpaceAvatar.vue",
"chars": 4899,
"preview": "<template>\n <div\n class=\"space-avatar\"\n :style=\"avatarStyle\"\n :class=\"{ 'space-avatar-small': size === 'small'"
},
{
"path": "frontend/src/components/TenantSelector.vue",
"chars": 12344,
"preview": "<template>\n <div class=\"tenant-selector\" ref=\"selectorRef\">\n <div class=\"tenant-trigger\" @click=\"toggleDropdown\">\n "
},
{
"path": "frontend/src/components/UserMenu.vue",
"chars": 12856,
"preview": "<template>\n <div class=\"user-menu\" :class=\"{ 'user-menu--collapsed': uiStore.sidebarCollapsed }\" ref=\"menuRef\">\n <!-"
},
{
"path": "frontend/src/components/css/chat-message-shared.less",
"chars": 3662,
"preview": ".answer-toolbar {\n display: flex;\n justify-content: flex-start;\n gap: 6px;\n margin-top: 8px;\n min-height: 32px;\n\n "
},
{
"path": "frontend/src/components/css/markdown.less",
"chars": 8330,
"preview": ":deep(.md-content) {\n box-sizing: border-box !important;\n\n img {\n max-width: 444px;\n cursor: pointer"
},
{
"path": "frontend/src/components/doc-content.vue",
"chars": 35514,
"preview": "// @ts-nocheck\n<script setup lang=\"ts\">\nimport { marked } from \"marked\";\nimport hljs from \"highlight.js\";\nimport \"highli"
},
{
"path": "frontend/src/components/document-preview.vue",
"chars": 19700,
"preview": "// @ts-nocheck\n<script setup lang=\"ts\">\nimport { ref, shallowRef, watch, onUnmounted, nextTick, defineAsyncComponent } f"
},
{
"path": "frontend/src/components/empty-knowledge.vue",
"chars": 1056,
"preview": "<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\nconst { t } = useI18n()\n</script>\n<template>\n <div class="
},
{
"path": "frontend/src/components/manual-knowledge-editor.vue",
"chars": 30452,
"preview": "<script setup lang=\"ts\">\nimport { ref, reactive, computed, watch, nextTick, onBeforeUnmount } from 'vue'\nimport { marked"
},
{
"path": "frontend/src/components/menu.vue",
"chars": 42903,
"preview": "<template>\n <div class=\"aside_box\" :class=\"{ 'aside_box--collapsed': uiStore.sidebarCollapsed }\">\n <!-- 展开时:Lo"
},
{
"path": "frontend/src/components/picture-preview.vue",
"chars": 473,
"preview": "<script setup lang=\"ts\">\nimport { watch } from \"vue\"\n\nconst props = defineProps(['reviewImg', 'reviewUrl'])\nconst emit ="
},
{
"path": "frontend/src/components/upload-mask.vue",
"chars": 1035,
"preview": "<script setup lang=\"ts\">\nimport { useI18n } from 'vue-i18n'\nconst { t } = useI18n()\n</script>\n<template>\n <div class="
},
{
"path": "frontend/src/composables/useTheme.ts",
"chars": 1242,
"preview": "import { ref, watch } from 'vue'\n\nexport type ThemeMode = 'light' | 'dark' | 'system'\n\nconst STORAGE_KEY = 'WeKnora_them"
}
]
// ... and 589 more files (download for full content)
About this extraction
This page contains the full source code of the Tencent/WeKnora GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 789 files (8.4 MB), approximately 2.3M tokens, and a symbol index with 5773 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.