Compare commits

...

2481 Commits
v1.0.0 ... main

Author SHA1 Message Date
wxg0103 847755b1c2 feat: add response body schemas for various API endpoints 2025-08-19 15:15:46 +08:00
wxg0103 b57455d0ee refactor: expand permissions for application access token
--bug=1060032 --user=王孝刚 【桂物智慧】 api 调用客户端修改对话摘要接口,报错403,没有访问权限 https://www.tapd.cn/57709429/s/1757188
2025-08-19 11:06:36 +08:00
maninhill 2a257edff9
chore: Update README.md (#3587)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-07-14 17:49:32 +08:00
maninhill d47699331c
chore: Update README_CN.md (#3585) 2025-07-14 17:28:34 +08:00
maninhill 90c64d77dd
chore: Update README.md (#3584) 2025-07-14 17:27:02 +08:00
liqiang-fit2cloud e1ada3ffe2
Update build-and-push.yml
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-07-10 17:37:21 +08:00
wangdan-fit2cloud b62c79fda6 fix: text bug
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-07-10 11:37:44 +08:00
wangdan-fit2cloud 3d9e7dd4b1 feat: optimization 2025-07-10 11:37:44 +08:00
CaptainB 8ff15865a7 fix: remove redundant import of pickle in function_code.py
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-07-09 15:02:06 +08:00
wanghe-fit2cloud 48899d55d1 docs: Add some badges
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-07-07 13:15:57 +08:00
CaptainB 1cc4107bfe chore: remove ignore rule for pymupdf dependency in dependabot configuration
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-07-04 11:38:01 +08:00
CaptainB b13cd03706 fix: prevent usage of 'stdio' in MCP server configuration
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-06-24 11:46:53 +08:00
liuchang_cloud 69f024492b
fix(documet):upgrade document updatetime when upgrade document_char_length (#3211)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
fixed #2942
2025-06-20 10:17:25 +08:00
Mr.zhao a9c46cd7e0
fix: Reorganize the model cache (#3315)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-06-19 18:01:45 +08:00
CaptainB a9e9f5b085 chore: add ignore rule for pymupdf dependency in dependabot configuration
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-06-16 13:07:33 +08:00
wxg0103 e12b1fe14e refactor: gemini
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-06-05 09:11:06 +08:00
shaohuzhang1 7ce66a7bf3
perf: Function library execution (#3175)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-05-30 18:56:01 +08:00
zhangshaohu decd3395db build: Sensitive directory permissions 2025-05-22 21:59:06 +08:00
shaohuzhang1 9d7a383348
fix: The dropdown data of subsequent nodes in the form cannot be displayed back (#3131)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-05-22 14:36:10 +08:00
shaohuzhang1 8f7d91798b
fix: The dropdown data of subsequent nodes in the form cannot be displayed back (#3129) 2025-05-22 10:54:25 +08:00
wxg0103 81a3af2c8b refactor: openai token 2025-05-22 09:11:12 +08:00
wxg0103 2ec0d22b14 refactor: openai token
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-05-21 18:50:49 +08:00
wxg0103 27a77dc657 refactor: openai token 2025-05-21 18:33:56 +08:00
shaohuzhang1 187e9c1e4e
build: Sensitive directory permissions (#3127) 2025-05-21 17:39:09 +08:00
shaohuzhang1 e5bab10824
build: Sensitive directory permissions (#3126) 2025-05-21 16:43:46 +08:00
shaohuzhang1 347f4a0b03
fix: The default suffix for workflow file upload nodes is set to uppercase DOC and PPT (#3125)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-05-21 13:25:46 +08:00
shaohuzhang1 289ebf42a6
fix: Verification code is not case sensitive (#3121) 2025-05-21 11:56:58 +08:00
shaohuzhang1 71fdce08d7
build: Sensitive directory permissions (#3120) 2025-05-21 11:45:38 +08:00
shaohuzhang1 adc5af9cef
fix: Upload a file in the application dialogue, with a file name containing HTML character entities. After uploading, the file_id of the file is empty #3070 (#3119) 2025-05-21 11:40:48 +08:00
wangdan-fit2cloud ce2ab322f6 fix: modification of copywriting 2025-05-21 11:15:20 +08:00
shaohuzhang1 a7e31b94c7
fix: AI conversation jumps to 404 (#3118) 2025-05-21 10:58:00 +08:00
wangdan-fit2cloud 8498687794 fix: captcha style 2025-05-21 10:48:27 +08:00
wxg0103 190ca3e198 refactor: login captcha 2025-05-21 10:34:01 +08:00
shaohuzhang1 c1ddec1a61
feat: Login and add graphic captcha (#3117)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-05-20 20:16:36 +08:00
wangdan-fit2cloud 1ba8077e95 fix: optimize markdown style 2025-05-20 19:34:48 +08:00
wxg0103 9a42bd2302 refactor: add client_id 2025-05-20 18:49:22 +08:00
shaohuzhang1 35b662a52d
perf: Optimize document extraction for complex table files (#3116)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-05-20 13:44:20 +08:00
wangdan-fit2cloud a4faf52261
fix: Parameter setting page optimization (#3115) 2025-05-20 11:46:16 +08:00
wangdan-fit2cloud a30316d87a
fix: breadcrumb issue (#3111)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-05-19 18:18:36 +08:00
wangdan-fit2cloud a4d10cbe3b
fix: Application of multi-file style issues and modification of copywriting (#3110) 2025-05-19 16:39:45 +08:00
wangdan-fit2cloud ceccf9f1fa
fix: Line break truncated characters in English(#3103) 2025-05-19 16:38:26 +08:00
shaohuzhang1 3964db20dc
fix: Advanced orchestration defines global variables and assigns them through assignment nodes. If there is a form collection node before the reference node, the assignment node becomes invalid and the initial variable value is still referenced #3082 (#3108) 2025-05-19 14:36:40 +08:00
shaohuzhang1 57ada0708f
fix: When the function parameter is of non string type, if the parameter is empty, the function will run with an error #3053 (#3107) 2025-05-19 14:13:49 +08:00
shaohuzhang1 a1a92a833a
fix: Excel export prohibits inputting external links or formulas (#3106) 2025-05-19 14:04:16 +08:00
shaohuzhang1 5e0d8048f9
fix: Excel export prohibits inputting external links or formulas (#3105) 2025-05-19 13:51:13 +08:00
shaohuzhang1 8903b35aec
fix: dialogue log export error (#3100)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-05-16 13:22:10 +08:00
shaohuzhang1 fa4f7e99fd
perf: Refine the Model Manager code (#3099) 2025-05-16 12:37:52 +08:00
shaohuzhang1 b0630b3ddd
perf: Refine the Model Manager code (#3098) 2025-05-16 12:09:39 +08:00
shaohuzhang1 b2bf69740c
perf: Refine the Model Manager code (#3094)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-05-15 22:47:46 +08:00
shaohuzhang1 8cf66b9eca
perf: Refine the Model Manager code (#3093) 2025-05-15 22:38:20 +08:00
shaohuzhang1 1db8577ca6
perf: Refine the Model Manager code (#3091) 2025-05-15 21:53:10 +08:00
shaohuzhang1 949e4dea9e
perf: Refine the Model Manager code (#3089) 2025-05-15 21:22:41 +08:00
CaptainB c12988bc8a fix: update MCP server configuration text to include STREAMABLE_HTTP support
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1056115 --user=刘瑞斌 【应用编排】编辑mcp节点的config后,提问会报错 https://www.tapd.cn/57709429/s/1699333
--bug=1056092 --user=刘瑞斌 【应用编排】MCP的支持文案要加上支持 Streamable HTTP https://www.tapd.cn/57709429/s/1699357
2025-05-15 16:48:25 +08:00
shaohuzhang1 2728453f6c
fix: The workflow includes a form collection node. After the normal Q&A on the demonstration page is completed, refreshing the page will display the output of the nodes before the form collection node (#3081) 2025-05-14 10:06:07 +08:00
shaohuzhang1 ccf43bbcd9
feat: add pool options recycle (#3080) 2025-05-13 16:56:06 +08:00
CaptainB 8d8de53e38 chore: update langchain-mcp-adapters and mcp package versions
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-05-09 16:28:50 +08:00
CaptainB 7faf556771 refactor: remove unused initialization parameters from function library update
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
--bug=1055178 --user=刘瑞斌 【函数】启用的函数,禁用后再启用,函数的部分启用参数会被置为X https://www.tapd.cn/57709429/s/1694852
2025-05-08 13:05:34 +08:00
wxg0103 76ec8ad6f6 refactor: regolo icon
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-05-07 10:51:43 +08:00
Daniele Scasciafratte 0cf05a76a0
feat(provider): added regolo.ai (#3041) 2025-05-07 10:12:47 +08:00
CaptainB 357edbfbe0 ci: remove redundant pip package ecosystem configuration from dependabot
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-04-30 11:21:23 +08:00
CaptainB 0609a9afc8 ci: add pip package ecosystem support to dependabot configuration 2025-04-30 11:19:16 +08:00
shaohuzhang1 96e59a018f
fix: The simple application demonstration cannot be opened (#3028)
Some checks failed
Typos Check / Spell Check with Typos (push) Waiting to run
sync2gitee / repo-sync (push) Has been cancelled
2025-04-29 22:12:41 +08:00
shaohuzhang1 79b2de8893
feat: Ali Bailian supplier model list adds qwen3 model (#3026) 2025-04-29 19:08:17 +08:00
shaohuzhang1 0c7cca035e
fix: Cannot copy applications with opening statement characters exceeding 4096 (#3022)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-29 15:26:13 +08:00
shaohuzhang1 00a3e5ddc3
fix: The similarity of knowledge base mixed retrieval should be 0-2 (#3021) 2025-04-29 15:18:19 +08:00
shaohuzhang1 a6533c0db7
feat: Support Alibaba Bailian supplier qwen3 model (#3020) 2025-04-29 14:57:41 +08:00
shaohuzhang1 704077d066
fix: Workflow application node parameter saving cannot be reflected back (#3019) 2025-04-29 14:35:36 +08:00
shaohuzhang1 59ee0c1270
fix: During the conversation, there is sensitive data in the application profile obtained by the application (#3018) 2025-04-29 13:40:15 +08:00
wangdan-fit2cloud b37cc3ba1c
perf: The style of MCP nodes when there is no data (#3017) 2025-04-29 11:34:27 +08:00
yuxiaobin dfe6d0a91b
add support for docx, xlsx (#3014) 2025-04-29 11:25:12 +08:00
shaohuzhang1 5813eedd4f
perf: Slow dialogue log query (#3016) 2025-04-29 11:24:22 +08:00
liqiang-fit2cloud 363150380d build: update build-and-push.yml.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-28 14:55:26 +08:00
liqiang-fit2cloud 47f9c04664 build(deps): update pyproject.toml. 2025-04-25 15:55:01 +08:00
dependabot[bot] 17cd88edda build(deps): update langchain-anthropic requirement
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
Updates the requirements on [langchain-anthropic](https://github.com/langchain-ai/langchain) to permit the latest version.
- [Release notes](https://github.com/langchain-ai/langchain/releases)
- [Commits](https://github.com/langchain-ai/langchain/compare/langchain-anthropic==0.3.10...langchain-anthropic==0.3.12)

---
updated-dependencies:
- dependency-name: langchain-anthropic
  dependency-version: 0.3.12
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-25 12:04:22 +08:00
dependabot[bot] d33b620dc8 build(deps): update langchain-ollama requirement from 0.3.1 to 0.3.2
Updates the requirements on [langchain-ollama](https://github.com/langchain-ai/langchain) to permit the latest version.
- [Release notes](https://github.com/langchain-ai/langchain/releases)
- [Commits](https://github.com/langchain-ai/langchain/compare/langchain-ollama==0.3.1...langchain-ollama==0.3.2)

---
updated-dependencies:
- dependency-name: langchain-ollama
  dependency-version: 0.3.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-25 12:02:46 +08:00
CaptainB b95cb20704 ci: add pip package ecosystem support to dependabot configuration 2025-04-25 11:44:15 +08:00
shaohuzhang1 4ff1944b60
fix: User input parameter occupancy issue (#2976)
Some checks failed
Typos Check / Spell Check with Typos (push) Waiting to run
sync2gitee / repo-sync (push) Has been cancelled
2025-04-24 17:39:44 +08:00
wangdan-fit2cloud 1c6b0f8a86 fix: api input bug 2025-04-24 17:32:22 +08:00
shaohuzhang1 d85801fe58
build: ui build error (#2975) 2025-04-24 16:39:01 +08:00
shaohuzhang1 e79e7d505d
feat: Add local model worker parameters (#2974) 2025-04-24 16:22:01 +08:00
shaohuzhang1 33b1cd65b0
fix: Ollama maximum output token field (#2973) 2025-04-24 16:16:36 +08:00
CaptainB 8d503c8bf8 fix: update post_cell function to handle different newline characters in cell values
--bug=1054683 --user=刘瑞斌 【github#2831】知识库上传excel、应用编排文档内容提取节点中上传excel,单元格中有换行,导入后没有在一个单元格里显示 https://www.tapd.cn/57709429/s/1690232
2025-04-24 16:05:09 +08:00
wangdan-fit2cloud df7f922013 fix: fix api input bug 2025-04-24 15:27:41 +08:00
liqiang-fit2cloud a0541203e4 deps: lock versions.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-24 13:38:59 +08:00
liqiang-fit2cloud fb64731cd8 deps: lock versions. 2025-04-24 13:31:27 +08:00
shaohuzhang1 d960a18711
fix: Thinking about process labels during simple application debugging does not take effect (#2971) 2025-04-24 13:11:28 +08:00
liqiang-fit2cloud ee35cc21e9 build: update build-and-push.yml. 2025-04-24 12:54:36 +08:00
liqiang-fit2cloud e4a60daa17 deps: lock versions. 2025-04-24 12:45:49 +08:00
liqiang-fit2cloud 7bcb770ee5 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-24 12:33:38 +08:00
wangdan-fit2cloud b5b09dc8b4
fix: Fixed interface parameter transmission not displaying during debugging (#2969) 2025-04-24 11:24:44 +08:00
shaohuzhang1 b1f6092620
fix: The tag based thinking process does not output (#2968) 2025-04-24 10:57:10 +08:00
wxg0103 c8441cfd73 refactor: loading
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-23 16:04:57 +08:00
wangdan-fit2cloud 7e4b147576 fix: upload style 2025-04-23 15:35:54 +08:00
CaptainB 9cd082089a feat: update file extension display to uppercase in upload settings 2025-04-23 15:34:07 +08:00
wangdan-fit2cloud d4541e23f9 fix: Fix the issue of uploading and deleting other files 2025-04-23 15:02:05 +08:00
wxg0103 5e7e91cced refactor: loading 2025-04-23 13:53:04 +08:00
wangdan-fit2cloud d9787bb548 fix: style bug 2025-04-23 10:53:38 +08:00
CaptainB 131b5b3bbe feat: add existing file extensions warning and improve file type display in upload settings
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-23 10:48:29 +08:00
wxg0103 e58f95832b fix: aws computer tokens error
--bug=1055094 --user=王孝刚 【应用】aws模型在应用编排中使用时,回答内容会带一串报错信息,并且消耗tokens显示为0 https://www.tapd.cn/57709429/s/1689448
2025-04-23 10:41:18 +08:00
wxg0103 f24337d5f3 fix: The forgot password page displays an error
--bug=1055073 --user=王孝刚 【长城开发科技】自定平台登录设置在点击忘记密码时还是默认提示 https://www.tapd.cn/57709429/s/1689108
2025-04-23 10:05:46 +08:00
shaohuzhang1 d6f1d25b59
fix: Change the max_token of the Qianfan large model to max_output_token (#2955)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-22 18:10:49 +08:00
shaohuzhang1 0ec198fa43
fix: Lost historical conversation records (#2954)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-22 17:58:28 +08:00
wangdan-fit2cloud 77e96624ee
fix: upload file style (#2953) 2025-04-22 17:31:14 +08:00
CaptainB 5e02809db2 feat: add support for handling and displaying additional file types in the chat interface 2025-04-22 16:42:08 +08:00
shaohuzhang1 6fe001fcf8
fix: collection form function cannot be used normally and will be stuck in the answer #2857 (#2952) 2025-04-22 16:24:39 +08:00
CaptainB f646102262 fix: update file upload settings to allow dynamic video extensions and improve input handling for other file types 2025-04-22 16:20:01 +08:00
shaohuzhang1 b97f4e16ba
dependencies: Upgrade Django to 4.2.20 (#2950) 2025-04-22 14:58:31 +08:00
shaohuzhang1 0c14306889
fix: Docx segmented font title recognition (#2949) 2025-04-22 14:51:45 +08:00
wxg0103 f1d043f67b fix: The forgot password page displays an error
--bug=1055073 --user=王孝刚 【长城开发科技】自定平台登录设置在点击忘记密码时还是默认提示 https://www.tapd.cn/57709429/s/1689108
2025-04-22 14:19:43 +08:00
shaohuzhang1 c39a6e81d7
fix: When there is an empty string in the context, the conversation reports an error (#2947) 2025-04-22 13:59:53 +08:00
shaohuzhang1 9c56c7e198
fix: When automatic sending is not selected, the text conversion should be displayed in the position of the question input box (#2946) 2025-04-22 11:54:56 +08:00
shaohuzhang1 6484fef8ea
fix: Edit advanced orchestration applications, add application nodes, and display that some applications are unavailable after being added (#2945) 2025-04-22 11:25:47 +08:00
wangdan-fit2cloud 8a194481ac
feat: Adjust file upload and add other file function styles (#2944) 2025-04-22 11:12:42 +08:00
shaohuzhang1 072b817792
fix: OpenAI interface call for session, passing asker does not take effect (#2943) 2025-04-22 11:06:50 +08:00
CaptainB d32f7d36a6 feat: add support for uploading other file types and extend file upload settings
--story=1018411 --user=刘瑞斌 【工作流应用】文件上传可以支持其它文件类型 https://www.tapd.cn/57709429/s/1688679
2025-04-22 09:56:54 +08:00
wangdan-fit2cloud 54c9d4e725
feat: Support uploading files by copying, pasting, dragging and dropping (#2939) 2025-04-21 20:30:40 +08:00
shaohuzhang1 d2637c3de2
fix: Model parameters are not effective (#2937) 2025-04-21 18:06:09 +08:00
wxg0103 2550324003 refactor: oidc add field_mapping 2025-04-21 17:45:49 +08:00
wxg0103 bf52dd8174 fix: i18n error
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1054853 --user=王孝刚 【API文档】-获取知识库文档分页列表接口的名称错误 https://www.tapd.cn/57709429/s/1688248
2025-04-21 10:20:44 +08:00
maninhill 2ecec57d2f
chore: Update README.md (#2927)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-04-18 17:34:11 +08:00
CaptainB b5fda0e020 chore: add dependabot configuration for weekly pip updates for v2
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-18 13:58:11 +08:00
liqiang-fit2cloud 45a60cd9a7 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-16 15:55:50 +08:00
maninhill 2b82675853
chore: Update README.md (#2897)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-04-16 12:15:24 +08:00
maninhill 1d3bf1ca73
chore: Update README_CN.md (#2893) 2025-04-16 09:50:28 +08:00
maninhill 04cb9c96fe
chore: Update README_CN.md (#2892) 2025-04-16 09:48:05 +08:00
liqiang-fit2cloud 45d8ac2eee Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-15 17:52:19 +08:00
maninhill eb60331c88
chore: Update README_CN.md (#2886)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-15 15:49:20 +08:00
liqiang-fit2cloud 8fc9b0a22d Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-15 15:24:31 +08:00
liqiang-fit2cloud ec5fd9e343 docs: change defaultSlogan.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-15 14:37:10 +08:00
maninhill 1e49939c38
chore: Update README.md (#2884) 2025-04-15 14:27:10 +08:00
liqiang-fit2cloud 5a7b23aa00 docs: change defaultSlogan. 2025-04-15 14:23:32 +08:00
liqiang-fit2cloud 791505b7b8 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-15 13:50:17 +08:00
maninhill da10649adb Update README_CN.md 2025-04-15 12:57:07 +08:00
maninhill a025e3960d
chore: Update README_CN.md (#2880) 2025-04-15 12:51:12 +08:00
maninhill 98ed348de9
chore: Update README_CN.md (#2879) 2025-04-15 12:22:50 +08:00
maninhill b9dcc36b31
chore: Update README_CN.md (#2878) 2025-04-15 11:54:19 +08:00
liqiang-fit2cloud 7a3d3844ae Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-15 11:05:03 +08:00
maninhill 6ea2cf149a
chore: Update README_CN.md (#2874)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-14 19:18:44 +08:00
maninhill c30677d8b0
chore: Update README.md (#2873) 2025-04-14 19:02:23 +08:00
wxg0103 a1a2fb5628 fix: application title error
--bug=1054724 --user=王孝刚 【github#2855】【应用】修改应用名称后,演示界面及访问链接的web标签页名称还是旧名称 https://www.tapd.cn/57709429/s/1685555
2025-04-14 18:42:58 +08:00
CaptainB f9cb0e24d6 refactor: enhance input handling for custom sources in form fields
--bug=1054775 --user=刘瑞斌 【应用编排】MCP调用节点,自定义工具参数建议支持选择数据类型 https://www.tapd.cn/57709429/s/1685483
2025-04-14 17:43:42 +08:00
liqiang-fit2cloud 2dc42183cb Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-14 16:35:49 +08:00
wangdan-fit2cloud c781c11d26
fix: Application chat page style issue (#2866)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-14 15:11:55 +08:00
liqiang-fit2cloud e178cfe5c0 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-14 14:22:06 +08:00
CaptainB 3b24373cd0 fix: handle line breaks in cell content for markdown table formatting
--bug=1054683 --user=刘瑞斌 【github#2831】知识库上传excel、应用编排文档内容提取节点中上传excel,单元格中有换行,导入后没有在一个单元格里显示 https://www.tapd.cn/57709429/s/1685274
2025-04-14 14:21:51 +08:00
liqiang-fit2cloud 125ed8aa7a Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-14 11:01:00 +08:00
ivy 0b60a03e5d perf: refine copywriting
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-04-11 16:56:41 +08:00
liqiang-fit2cloud bb3f17ebfe Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-11 11:08:32 +08:00
maninhill ce7efd4758
chore: Update USE-CASES.md (#2850)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-10 17:11:50 +08:00
liqiang-fit2cloud 1695710cbe Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-10 16:42:08 +08:00
wangdan-fit2cloud b0366b18b6
fix: Optimize dialogue style (#2849) 2025-04-10 16:13:37 +08:00
wxg0103 a4f27249ed fix: openai error
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
2025-04-10 14:41:05 +08:00
liqiang-fit2cloud ebe8506c67 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-10 14:37:17 +08:00
shaohuzhang1 5243e42100
fix: MD editor table cannot have too many columns and cannot scroll horizontally (#2845) 2025-04-10 13:54:54 +08:00
wangdan-fit2cloud e5738f3b31
fix: History record error in dialogue basic mode (#2844) 2025-04-10 11:36:05 +08:00
liqiang-fit2cloud 3c3bd9884f Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-10 09:48:40 +08:00
shaohuzhang1 0213aff12a
fix: Historical user conversation data has been cleared (#2843)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-10 09:48:14 +08:00
shaohuzhang1 8dc793a128
fix: Historical user conversation data has been cleared (#2840)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-09 19:16:42 +08:00
shaohuzhang1 0861eb4cdc
fix: Invalid verification of dialogue user form (#2839)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-09 18:11:50 +08:00
wxg0103 d78c1459b7 refactor: oauth2 state 2025-04-09 17:56:45 +08:00
liqiang-fit2cloud f188383fea Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-09 17:33:23 +08:00
wangdan-fit2cloud 7421caba9b fix: Optimize details 2025-04-09 16:49:41 +08:00
liqiang-fit2cloud bbab359813 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-09 16:33:28 +08:00
shaohuzhang1 deb3844b4c
fix: Judgment tool drag and drop sorting (#2837) 2025-04-09 15:34:36 +08:00
maninhill 26f36ccee1
chore: Update README.md (#2835) 2025-04-09 15:15:25 +08:00
liqiang-fit2cloud 8381ca5287 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-09 15:08:32 +08:00
maninhill e8c1cdf959
chore: Update README.md (#2834) 2025-04-09 13:48:44 +08:00
wangdan-fit2cloud 675d2366da
fix: condition node supports drag and drop 2025-04-09 11:52:54 +08:00
wangdan-fit2cloud bbb63a5928
fix: chat avatar display issue fixed (#2832) 2025-04-09 10:56:58 +08:00
liqiang-fit2cloud f5282bf1e7 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-04-09 10:03:53 +08:00
liqiang-fit2cloud 4ae02c8d3e security: fix reverse shell vulnerability in function library.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-09 10:01:11 +08:00
liqiang-fit2cloud c0ffc0aaf5 security: fix reverse shell vulnerability in function library. 2025-04-09 09:57:11 +08:00
shaohuzhang1 3557ea50fa
fix: Missing parameters such as character length when creating a knowledge base (#2827)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-08 17:24:33 +08:00
shaohuzhang1 43702e42b8
fix: When switching application models, the model parameters should be set to the default values of the current model (#2826) 2025-04-08 16:43:22 +08:00
wangdan-fit2cloud 7a3a975645
fix: After modifying the application name and publishing , name was not updated(#2799) 2025-04-08 16:00:24 +08:00
shaohuzhang1 9da7a553bf
fix: The form recall node cannot respond (#2824) 2025-04-08 15:50:57 +08:00
wangdan-fit2cloud 2d6d16e046
feat: Optimize the interface when there are too many interface parameters.(#2795)
* perf: Optimization drag sorting condition nodes

* feat: Optimize the interface when there are too many interface parameters.(#2795)
2025-04-08 15:10:53 +08:00
wangdan-fit2cloud 919a3eee5d fix: Fix type errors 2025-04-08 10:53:47 +08:00
shaohuzhang1 1a704f1c25
fix: Workflow debugging for authorized applications will result in an error message indicating unauthorized access to the model (#2819) 2025-04-08 10:51:35 +08:00
wxg0103 7ca0a7bd02 fix: Missing fields in exported logs
--bug=1054500 --user=王孝刚 【应用】对话日志导出,没有携带用户信息 https://www.tapd.cn/57709429/s/1681984
2025-04-08 10:12:20 +08:00
shaohuzhang1 2681d02728
fix: When the discriminator is true, there is no problem with the value (#2814)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-07 18:56:58 +08:00
shaohuzhang1 5e43bb9d2a
fix: jieba 分词使用全模式 (#2813) 2025-04-07 18:51:32 +08:00
wxg0103 ecd5fafbaa fix: The same observable object cannot appear twice in the same tree
--bug=1054451 --user=王孝刚 【应用嵌套】高级编排中应用关联设置用户输入参数的应用,会报该应用不可用 https://www.tapd.cn/57709429/s/1681701
2025-04-07 18:46:32 +08:00
wangdan-fit2cloud 23b47657c0
feat: The workflow condition node supports drag and drop sorting (#2648) 2025-04-07 18:19:38 +08:00
shaohuzhang1 76d050bea4
feat: New condition for determining whether the discriminator is true or not (#2809)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-07 14:07:30 +08:00
wxg0103 add9d1bab8 fix: In the permission settings, the knowledge base list does not distinguish between knowledge base types, and all are marked with the icon of the general knowledge base.
--bug=1054142 --user=王孝刚 【团队成员】权限设置中,知识库列表没有区分知识库类型,都用通用知识库的图标标识 https://www.tapd.cn/57709429/s/1681104
2025-04-07 13:53:39 +08:00
shaohuzhang1 9c36d8f30a
fix: Quick issue, API parameters cannot be carried (#2808) 2025-04-07 11:57:36 +08:00
wxg0103 189e2a6c63 fix: When adding a large language model in Application-Settings-Add AI node, the Base Model is not listed
--bug=1054358 --user=王孝刚 【应用】应用-设置-添加AI 节点时添加大语言模型,没有列出Base Model https://www.tapd.cn/57709429/s/1681102
2025-04-07 11:37:25 +08:00
shaohuzhang1 867c53984b
fix: The local rearrangement model cannot be loaded (#2805) 2025-04-07 11:22:01 +08:00
CaptainB 560890f717 fix: limit chapter title length to 256 characters in pdf_split_handle.py
--bug=1054363 --user=刘瑞斌 【知识库】导入PDF文档,分段标题长度超长时,没有自动截断 https://www.tapd.cn/57709429/s/1681044
2025-04-07 10:54:59 +08:00
CaptainB 675adeeb63 fix: exclude macOS specific files from zip processing
--bug=1054264 --user=刘瑞斌 【知识库】QA问答对模式,导入在mac上压缩的zip文件,会出现2个乱码文档 https://www.tapd.cn/57709429/s/1681034
2025-04-07 10:37:06 +08:00
shaohuzhang1 6bc00eb869
fix: During the debugging process, the browser voice will automatically play after returning to other pages (#2794)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-04-03 11:34:26 +08:00
shaohuzhang1 1eccb54199
fix: Knowledge base retrieval segmentation sorted by relevance (#2791) 2025-04-03 10:57:12 +08:00
wangdan-fit2cloud 86e11baeb2
perf: Optimization user input auto close when send message 2025-04-03 10:34:51 +08:00
shaohuzhang1 69ae1cafab
fix: After the page is redirected, the voice playback does not stop (#2789) 2025-04-03 09:53:54 +08:00
shaohuzhang1 9d6451b95b
fix: The interface for obtaining model metadata cannot access public models (#2787)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-02 20:10:20 +08:00
shaohuzhang1 add1cba8cb
feat: Swagger document response for adding OpenAI interface (#2786) 2025-04-02 19:59:57 +08:00
CaptainB 927f0c784a fix: remove multiple file upload option from file input in index.vue 2025-04-02 19:04:22 +08:00
shaohuzhang1 ac5a9d01a8
fix: When other users download the public model, they cannot obtain the download data (#2785) 2025-04-02 18:29:25 +08:00
CaptainB 7b213f547d fix: update default voice type and options in VolcanicEngineTTSModelGeneralParams 2025-04-02 18:25:06 +08:00
shaohuzhang1 7e4e2e98bb
fix: When answering a question - click to stop answering - wait until the question is approximately answered, then click to continue - it will remain in a stopped answering state (#2784) 2025-04-02 18:10:42 +08:00
wangdan-fit2cloud 21d2a44090
perf: Optimize application setting switch button control 2025-04-02 18:09:47 +08:00
shaohuzhang1 e364d6e373
fix: remove_form_rander (#2782) 2025-04-02 17:52:31 +08:00
shaohuzhang1 15feca802a
fix: OpenAI Vector Model Using Openai Supplier (#2781) 2025-04-02 17:45:18 +08:00
wxg0103 2686e76c8a fix: xinference rerank error
--bug=1054256 --user=王孝刚 【模型】添加硅基流动的重排序模型失败 https://www.tapd.cn/57709429/s/1679612
2025-04-02 16:54:58 +08:00
shaohuzhang1 6cf91098d6
fix: Dialogue embedding to modify name (#2780) 2025-04-02 16:49:52 +08:00
wangdan-fit2cloud 678a5ae4a5
fix: optimization user input 2025-04-02 16:42:58 +08:00
shaohuzhang1 a71c844ef4
fix: Copy and delete form information (#2778) 2025-04-02 16:36:14 +08:00
shaohuzhang1 74d10b61bc
fix: Unfiltered special characters in voice playback (#2777) 2025-04-02 16:12:17 +08:00
CaptainB 27bc01d442 fix: skip macOS specific metadata directories and files in zip parsing
--bug=1054264 --user=刘瑞斌 【知识库】QA问答对模式,导入在mac上压缩的zip文件,会出现2个乱码文档 https://www.tapd.cn/57709429/s/1679674
2025-04-02 16:06:36 +08:00
shaohuzhang1 bd900118f4
refactor: Dialogue logic optimization (#2776) 2025-04-02 15:51:15 +08:00
wxg0103 44c1d35b1f fix: siliconCloud rerank error
--bug=1054256 --user=王孝刚 【模型】添加硅基流动的重排序模型失败 https://www.tapd.cn/57709429/s/1679612
2025-04-02 15:17:39 +08:00
wangdan-fit2cloud f6994e16b9 fix: Fallback to fix issues 2025-04-02 14:56:30 +08:00
wxg0103 6d7b5eb219 fix: Increase log output 2025-04-02 14:17:48 +08:00
shaohuzhang1 27d4603b02
fix: Embedding dialogue asker parameter does not take effect (#2773)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-02 14:00:28 +08:00
shaohuzhang1 339e18d837
fix: After trying voice playback three times and sending an error message, an error message pops up (#2772) 2025-04-02 13:41:14 +08:00
CaptainB fb0fdb9c85 refactor: enhance MCP server configuration tooltips and validation messages
--bug=1054206 --user=刘瑞斌 【应用】MCP节点不配置Server config,不选择工具,可以发布应用,对话时报错 https://www.tapd.cn/57709429/s/1679457
2025-04-02 11:31:33 +08:00
wxg0103 5b2baaf04d fix: i18n error
--bug=1054232 --user=王孝刚 系统设置:操作菜单中的操作在中文模式下显示英文 https://www.tapd.cn/57709429/s/1679409
2025-04-02 10:46:39 +08:00
maninhill 739b977ce3
chore: Update README_CN.md (#2771) 2025-04-02 09:01:18 +08:00
maninhill 0315fe91df
chore: Update README.md (#2769) 2025-04-02 08:39:34 +08:00
wangdan-fit2cloud 02611588fc
fix: optimization chart operation style
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-01 19:41:01 +08:00
shaohuzhang1 2991f0b640
perf: Optimize word segmentation retrieval (#2767) 2025-04-01 19:11:16 +08:00
wxg0103 6fde8ec80f fix: openai need streaming 2025-04-01 16:58:08 +08:00
wangdan-fit2cloud 081fcab7eb
fix: Token conflict issue between two different applications embedded in the same system(#2753) 2025-04-01 16:19:13 +08:00
CaptainB 0e98c7783b refactor: add initialization parameters to function library update 2025-04-01 14:39:29 +08:00
wangdan-fit2cloud 812dc142c8
perf: Optimize some style issues 2025-04-01 14:21:44 +08:00
CaptainB 26946d0afb refactor: convert getList and getUserList functions to async for improved handling of asynchronous operations
--bug=1054152 --user=刘瑞斌 【函数库】筛选“我的”函数后刷新页面,还是显示的全部函数 https://www.tapd.cn/57709429/s/1678876
2025-04-01 13:03:22 +08:00
CaptainB ec6657177a refactor: conditionally render dropdown item based on init_field_list length
--bug=1054160 --user=刘瑞斌 【函数库】没有启用参数的函数,不展示启动参数按钮 https://www.tapd.cn/57709429/s/1678874
2025-04-01 13:03:22 +08:00
shaohuzhang1 4b9cecd4d1
feat: Knowledge base generation problem (#2760)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-04-01 12:46:30 +08:00
CaptainB 06867d33cb refactor: update MCP server config label for improved clarity 2025-04-01 10:55:48 +08:00
CaptainB b53a933327 refactor: update input source type from 'custom' to 'referencing'
--bug=1054147 --user=刘瑞斌 【MCP调用节点】工具参数默认方式是引用变量 https://www.tapd.cn/57709429/s/1678769
2025-04-01 10:33:02 +08:00
wangdan-fit2cloud 596b13711f
feat: function field form support sort
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-31 19:34:45 +08:00
shaohuzhang1 e7c3169898
feat: doc auth (#2752) 2025-03-31 19:02:56 +08:00
wxg0103 2612894557 refactor: oidc add state
--bug=1054135 --user=王孝刚 【认证】maxkb在调用okta的时候少个state参数,可以加上state参数 https://www.tapd.cn/57709429/s/1678654
2025-03-31 18:47:08 +08:00
CaptainB 7afc1da0af fix: handle non-string message types in function_lib_serializer 2025-03-31 18:29:01 +08:00
wxg0103 6aa0e9b5e4 refactor: i18n
--bug=1054121 --user=王孝刚 操作日志:修改应用的访问限制在操作日志中显示为修改应用的access token https://www.tapd.cn/57709429/s/1678535
2025-03-31 17:35:41 +08:00
CaptainB 24763427eb refactor: change mcp workflow node name 2025-03-31 17:29:00 +08:00
wangdan-fit2cloud da03442be2
fix: chat avatar display problem 2025-03-31 16:31:07 +08:00
shaohuzhang1 9750c6d605
fix: garbled zip import file names (#2747) 2025-03-31 16:22:39 +08:00
wxg0103 a2b6620b10 refactor: azure llm params 2025-03-31 15:31:52 +08:00
wangdan-fit2cloud b0a4e9e78f perf: Optimize copywriting 2025-03-31 15:23:02 +08:00
shaohuzhang1 36809b3314
fix: When uploading files during application dialogue, there are special whitespace characters and file name parsing errors #2738 (#2746) 2025-03-31 14:59:32 +08:00
wangdan-fit2cloud 165c27164e
fix: knowledge icon error 2025-03-31 14:40:52 +08:00
shaohuzhang1 1566ae7fbe
fix: Application deleted, workflow page error reported (#2743) 2025-03-31 14:31:53 +08:00
shaohuzhang1 b3feb243d3
fix: After setting the function library to private, the workflow used should report an error stating that the current function is not authorized to be used (#2742) 2025-03-31 13:58:38 +08:00
CaptainB cb104cc211 chore: fix typo
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-31 11:34:43 +08:00
shaohuzhang1 7a99c78840
fix: Processing for document export sheet with more than 32 characters (#2740) 2025-03-31 11:17:25 +08:00
shaohuzhang1 a07df46f9d
fix: Fix some knowledge base import errors (#2739) 2025-03-31 10:29:54 +08:00
CaptainB 4fa3fec103 ci: update some deps version
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-03-29 12:53:03 +08:00
CaptainB a2265cf357 chore: add tmp directory to .gitignore
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-28 18:45:35 +08:00
wxg0103 0b1990f8b3 refactor: lark 2025-03-28 18:25:36 +08:00
shaohuzhang1 bf91579b4e
fix: Fix some phones unable to play audio (#2728) 2025-03-28 18:24:00 +08:00
wxg0103 cc2789f37f fix: import add warning
--bug=1054090 --user=王孝刚 【知识库】飞书知识库-导入文档-未选择导入文件时,导入有提示信息 https://www.tapd.cn/57709429/s/1678039
2025-03-28 18:15:50 +08:00
wangdan-fit2cloud 3fe47e0fb3 perf: Optimize style 2025-03-28 18:09:19 +08:00
CaptainB 46e464b126 fix: conditionally render tooltip based on TTS availability in ChatOperationButton
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1054047 --user=刘瑞斌 【应用】应用基本信息中未开启语音播放,演示应用时可以语音播放(播放有时候正确) https://www.tapd.cn/57709429/s/1678099
2025-03-28 17:22:00 +08:00
CaptainB 54c4293482 fix: ensure init_field_list defaults to an empty list in function_lib_serializer
--bug=1054092 --user=刘瑞斌 【函数库】导入历史版本的函数失败 https://www.tapd.cn/57709429/s/1678044
2025-03-28 15:53:06 +08:00
CaptainB a799026d52 fix: ensure init_field_list defaults to an empty list in function_lib_serializer
--bug=1054092 --user=刘瑞斌 【函数库】导入历史版本的函数失败 https://www.tapd.cn/57709429/s/1678044
2025-03-28 15:51:48 +08:00
wangdan-fit2cloud 5ceb8a7ff9
feat: Internal function can modify names 2025-03-28 15:33:44 +08:00
wxg0103 e7e4570aeb refactor: log add hover
--bug=1054088 --user=王孝刚 【操作日志】优化-操作详情建议一行展示,提供hover功能,hover后展示全部详情 https://www.tapd.cn/57709429/s/1678006
2025-03-28 15:01:27 +08:00
wxg0103 f69346f2bc refactor: i18n 2025-03-28 14:25:21 +08:00
shaohuzhang1 dcc80a4dca
fix: Every time a vectorized document is generated, the entire vectorized data of the document is deleted (#2721) 2025-03-28 14:15:48 +08:00
wxg0103 2fe4248785 refactor: qwq model 2025-03-28 14:05:33 +08:00
shaohuzhang1 bdaeb1bec4
perf: Optimization of recording function on mobile devices (#2719) 2025-03-28 13:52:54 +08:00
wangdan-fit2cloud 89be3e317d
fix: Optimize copywriting and style 2025-03-28 11:54:08 +08:00
CaptainB 2b079a4144 fix: update function names and descriptions for clarity in function_lib 2025-03-28 11:52:20 +08:00
wxg0103 4ffec85e9b refactor: Optimization of operation menu
--bug=1054069 --user=王孝刚 【操作日志】-操作菜单优化建议 https://www.tapd.cn/57709429/s/1677900
2025-03-28 11:45:51 +08:00
wangdan-fit2cloud bd098e68e5
fix: Fix markdown text 2025-03-28 10:28:51 +08:00
wxg0103 d282795644 refactor: i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-28 09:31:48 +08:00
shaohuzhang1 5ba802482f
perf: Optimize voice recording (#2707)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-27 19:53:35 +08:00
wangdan-fit2cloud 378de21fa2
feat: User input optimization
* fix: Fix img 404

* feat: User input optimization
2025-03-27 19:42:01 +08:00
wxg0103 5eee6bfb6c fix: Modify download template prompt
--bug=1054044 --user=王孝刚 【知识库】上传文档-QA问答对-下载Excel/CSV模版-显示问题答案最长不超过4096个字符,实际上可以导入超过4096个字符的数据 https://www.tapd.cn/57709429/s/1677605
2025-03-27 18:50:12 +08:00
wxg0103 d47295aa36 fix: Defects that can be saved multiple times
--bug=1054039 --user=王孝刚 【飞书知识库】-导入文档时,快速点击开始导入按钮,会触发多次import请求,并且会跳离文档列表页 https://www.tapd.cn/57709429/s/1677588
2025-03-27 18:50:01 +08:00
CaptainB 0a3b9ee02b fix: refactor form item rendering for improved readability and structure
--bug=1054022 --user=刘瑞斌 【应用】MCP节点工具列表建议支持搜索 https://www.tapd.cn/57709429/s/1677517
--bug=1054029 --user=刘瑞斌 【应用】MCP工具参数必填时,参数置空可以发布应用 https://www.tapd.cn/57709429/s/1677571
2025-03-27 18:20:52 +08:00
CaptainB 97fb4a5cea fix: format MCP tool messages with detailed JSON representation
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-27 16:51:56 +08:00
wxg0103 80cd3ff7ec refactor: log menu 2025-03-27 16:24:45 +08:00
wxg0103 c66f79ad5a refactor: log menu 2025-03-27 16:14:24 +08:00
shaohuzhang1 3797613182
feat: Support converting text prompts (#2702) 2025-03-27 12:08:25 +08:00
CaptainB 7145f303da fix: update option list search logic to handle string and array form_data values
--bug=1053919 --user=刘瑞斌 【函数库】非必填启动参数开启启动参数后再次编辑多选置空 https://www.tapd.cn/57709429/s/1677136
2025-03-27 12:07:05 +08:00
wangdan-fit2cloud 754f7cb87c perf: dialog style 2025-03-27 11:42:59 +08:00
CaptainB 8a7e41be61 fix: enhance init_params check to ensure default values are present in init_field_list
--bug=1054001 --user=刘瑞斌 【函数库】创建时设置了默认启动参数,但依然弹出启动参数弹窗 https://www.tapd.cn/57709429/s/1677100
2025-03-27 11:12:21 +08:00
wangdan-fit2cloud 532ea4941a fix: radio style 2025-03-27 11:02:08 +08:00
CaptainB 286552d54b fix: update InitParamDrawer to handle is_active state in open method
--bug=1053998 --user=刘瑞斌 【函数库】首次开启函数并设置启动参数失败 https://www.tapd.cn/57709429/s/1677086
2025-03-27 11:00:23 +08:00
wxg0103 f82ba3c4b8 fix: qwq-plus only supported stream 2025-03-27 10:18:58 +08:00
CaptainB 0e29ce28cf chore: remove unused MCP response function from base_chat_node.py 2025-03-27 10:05:37 +08:00
wangdan-fit2cloud eed4d6857e
fix: Update lark icon and dialog style
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-26 20:46:14 +08:00
CaptainB 601b03d84e fix: ensure tool parameters are properly handled by reloading JSON
--bug=1053980 --user=刘瑞斌 【应用】MCP节点的工具参数引用参数时,对话过程中参数值发生变化,MCP节点没有获取最新的参数值 https://www.tapd.cn/57709429/s/1676830
2025-03-26 19:15:30 +08:00
wangdan-fit2cloud 8252febe22
fix: Fix style confusion 2025-03-26 18:56:11 +08:00
wangdan-fit2cloud 1a57e5897d
fix: Fix style confusion and update markdown file and icon
* fix: Fix style confusion

* fix: Update markdown file and icon
2025-03-26 18:55:39 +08:00
CaptainB 1e8e3a90aa fix: handle audio generation failure by raising an exception 2025-03-26 17:15:23 +08:00
CaptainB 2971406909 feat: add placeholder for MCP server configuration in form fields 2025-03-26 16:45:33 +08:00
shaohuzhang1 db772b1d1c
fix: Segmented filtering of paragraphs with empty parent title content (#2693)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-26 16:02:26 +08:00
wangdan-fit2cloud ca12d653a6
perf: Optimize pressing enter to line breaks on mobile 2025-03-26 16:00:19 +08:00
shaohuzhang1 a0ee5c9441
fix: Audit log login did not record user (#2691) 2025-03-26 15:41:11 +08:00
wxg0103 b1aa1f7a53 refactor: i18n 2025-03-26 15:35:03 +08:00
wangdan-fit2cloud 579604bd81
perf: Prompt word alignment issue(#2537) 2025-03-26 15:24:19 +08:00
wxg0103 a303f24974 refactor: i18n 2025-03-26 14:45:40 +08:00
wangdan-fit2cloud fadbd2fde0 fix: Update fx files 2025-03-26 14:25:34 +08:00
CaptainB bd7dbb13f3 fix: update icon paths in function library to use correct UI directory structure 2025-03-26 14:09:20 +08:00
shaohuzhang1 394d96980b
fix: Voice playback may cause playback issues (#2689) 2025-03-26 13:49:30 +08:00
CaptainB d27e5a4c01 chore: fix warning 2025-03-26 13:35:29 +08:00
CaptainB a6703c9889 fix: update icon paths in function library to use correct directory structure 2025-03-26 13:35:29 +08:00
wangdan-fit2cloud 545e80d655
fix: Static image loading path issue and Mobile setting information error 2025-03-26 12:55:59 +08:00
CaptainB 436e43dd04 feat: enhance form handling with dynamic input fields and reference content retrieval 2025-03-26 12:43:51 +08:00
CaptainB b8562ec736 fix: reset selectUserId on tab change in function library tabs
--bug=1053743 --user=刘瑞斌 【需求转缺陷】【内置函数】- 去掉按创建用户的搜索选项 https://www.tapd.cn/57709429/s/1676289
2025-03-26 11:00:30 +08:00
CaptainB 1b6b021226 fix: set is_active to False and update init_params handling in function_lib_serializer
--bug=1053923 --user=刘瑞斌 【函数库】创建函数后函数状态为启用,并非是禁用 https://www.tapd.cn/57709429/s/1676263

--bug=1053928 --user=刘瑞斌 【函数库】设置过启动参数的函数,删除启动参数,但实际依然有保留 https://www.tapd.cn/57709429/s/1676269
2025-03-26 10:55:35 +08:00
shaohuzhang1 55cdd0a708
fix: Zip with title cannot be parsed (#2683) 2025-03-26 10:31:31 +08:00
shaohuzhang1 f9d536f5a2
feat: Audit log add operation object (#2681)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-25 19:07:02 +08:00
wangdan-fit2cloud ba4e55d3e8
perf: refine user input style 2025-03-25 18:33:14 +08:00
CaptainB 3594fdadfa feat: add show_default_value attribute to input field in UserFieldFormDialog 2025-03-25 17:57:59 +08:00
CaptainB 83140b5f1d refactor: update label for API Key in input fields across function library
--bug=1053890 --user=刘瑞斌 【函数库】博查、Google、LangSearch查询函数的启动参数中,apikey建议改为 API Key https://www.tapd.cn/57709429/s/1675986
2025-03-25 17:34:15 +08:00
CaptainB 26cb55adfb fix: increase maximum length for input field in TextInputConstructor 2025-03-25 17:09:57 +08:00
wangdan-fit2cloud 440e2ba695
MCP node and internal function style
* feat: function

* feat: MCP node and internal  function style
2025-03-25 16:36:16 +08:00
CaptainB f19316639e chore: fix typo.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-25 15:26:23 +08:00
CaptainB 564e781ba2 chore: fix typo. 2025-03-25 15:25:31 +08:00
wxg0103 9b46d29e73 refactor: lark document 2025-03-25 14:54:53 +08:00
CaptainB 6630589e8e fix: prevent default form submission in FunctionDebugDrawer
--bug=1053876 --user=刘瑞斌 【函数库】调试输入框回车后弹出新的浏览器tab页 https://www.tapd.cn/57709429/s/1675686
2025-03-25 13:23:02 +08:00
CaptainB 2f20868ca6 fix: handle empty message case in encryption function
--bug=1053881 --user=刘瑞斌 【函数库】-编辑函数,修改启动参数的必填选项后,保存函数报错 https://www.tapd.cn/57709429/s/1675682
2025-03-25 13:12:02 +08:00
CaptainB 64df9cf437 fix: improve required field validation for database connection parameters
--bug=1053849 --user=刘瑞斌 【函数库】- PgSQL 启动参数的先后顺序调整 https://www.tapd.cn/57709429/s/1675675
2025-03-25 12:53:46 +08:00
CaptainB 66b84a77b9 fix: conditionally display MCP Server Config field based on MCP enable status
--bug=1053873 --user=刘瑞斌 【AI对话节点】-工具设置中MCP关闭时,不显示server config配置 https://www.tapd.cn/57709429/s/1675665
2025-03-25 12:43:45 +08:00
wxg0103 d058d6d176 fix: function add required
--bug=1053859 --user=王孝刚 【函数库】函数内容给出必填提示 https://www.tapd.cn/57709429/s/1675529
2025-03-25 11:21:59 +08:00
wxg0103 5f289885f7 fix: lark document icon error
--bug=1053854 --user=王孝刚 【飞书】-创建完飞书知识库后,面板中飞书的icon未变 https://www.tapd.cn/57709429/s/1675539
2025-03-25 11:21:49 +08:00
wxg0103 82b06d130a fix: lark document i18n error
--bug=1053850 --user=王孝刚 [知识库]英文语言模式-添加飞书文档页面未国际化&提示的翻译错误 https://www.tapd.cn/57709429/s/1675482
2025-03-25 10:43:17 +08:00
CaptainB 0f0b6b976e feat: add MCP server config validation and user tips 2025-03-25 10:06:24 +08:00
ivy f681cb9b23 fix: Update characters 2025-03-24 20:53:46 +08:00
wangdan-fit2cloud ee5c8a455d feat: Setting avatar show or hide 2025-03-24 20:38:32 +08:00
wangdan-fit2cloud b01172b242 fix: lark document 2025-03-24 19:09:18 +08:00
shaohuzhang1 19b9e52a45
fix: Limit the number of retries for text to speech conversion (#2670) 2025-03-24 18:49:24 +08:00
CaptainB 563516f835 feat: AI chat node mcp server config 2025-03-24 18:38:54 +08:00
CaptainB 2d6ac806ff feat: add MCP server tools integration and UI components 2025-03-24 18:38:54 +08:00
CaptainB f9c4e96f97 fix: enhance validation for required form fields
--bug=1052705 --user=刘瑞斌 【工作流】添加”开关”按钮参数, 默认值为关闭,保存之后页面还会提示“请填写所填字段” https://www.tapd.cn/57709429/s/1675323
2025-03-24 18:10:42 +08:00
shaohuzhang1 66f674f651
fix: Voice playback is not played in order (#2668) 2025-03-24 17:54:45 +08:00
CaptainB 98ef6e5775 fix: improve error handling for MySQL connection
--bug=1053828 --user=刘瑞斌 【函数】内置的MySQL查询函数,在启动参数配错后,应用调用的返回结果为None,没有输出异常信息 https://www.tapd.cn/57709429/s/1675168
2025-03-24 17:50:02 +08:00
shaohuzhang1 ad452afa52
fix: When asker is empty, do not pass the current parameter (#2667) 2025-03-24 17:41:18 +08:00
CaptainB 0a148bff4b fix: always render subtitle for item username in template
--bug=1053754 --user=刘瑞斌 【内置函数】添加到函数库中后,未显示创建者 https://www.tapd.cn/57709429/s/1675159
2025-03-24 17:40:24 +08:00
CaptainB 9189a2ff2b fix: conditionally render user selection for public function type
--bug=1053743 --user=刘瑞斌 【需求转缺陷】【内置函数】- 去掉按创建用户的搜索选项 https://www.tapd.cn/57709429/s/1675143
2025-03-24 17:35:20 +08:00
liqiang-fit2cloud c0255beca2 build(deps): bump the pip group across 1 directory with 2 updates (#2654) 2025-03-24 16:50:23 +08:00
shaohuzhang1 c526a27796
build: build_error (#2662) 2025-03-24 16:02:43 +08:00
dependabot[bot] 13ce966caa
build(deps): bump the pip group across 1 directory with 2 updates (#2654)
Updates the requirements on [torch](https://github.com/pytorch/pytorch) and [gunicorn](https://github.com/benoitc/gunicorn) to permit the latest version.

Updates `torch` to 2.6.0
- [Release notes](https://github.com/pytorch/pytorch/releases)
- [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md)
- [Commits](https://github.com/pytorch/pytorch/compare/v2.2.1...v2.6.0)

Updates `gunicorn` to 23.0.0
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/22.0.0...23.0.0)

---
updated-dependencies:
- dependency-name: torch
  dependency-type: direct:production
  dependency-group: pip
- dependency-name: gunicorn
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 16:02:31 +08:00
shaohuzhang1 dcee1b6d55
feat: Text to speech support streaming playback (#2661) 2025-03-24 14:21:29 +08:00
wxg0103 0ce6dd0795 fix: Optimize the creation of models
--bug=1053742 --user=王孝刚 【模型管理】- 创建模型时,若在选择供应商列表选择了模型类型,进入供应商表单时,携带模型类型 https://www.tapd.cn/57709429/s/1674767
2025-03-24 11:50:38 +08:00
wxg0103 259d1c872b fix: type check error 2025-03-24 10:26:33 +08:00
ivy e7c2c9710a perf: Delete unnecessary files 2025-03-21 22:46:54 +08:00
wangdan-fit2cloud 0eebbb094c
feat: Optimize the mobile voice interaction experience
* fix: Optimize small screen dialogue style

* feat: Mobile voice conversation new UI

* feat: Optimize the mobile voice interaction experience

* feat: Optimize the mobile voice interaction experience
2025-03-21 16:57:04 +08:00
wxg0103 2faabbe392 refactor: bailian 2025-03-21 11:02:43 +08:00
wxg0103 e22fc95ee9 refactor: Optimization of Q&A page
--story=1018176 --user=王孝刚 【问答页面】优化对话页面显示 https://www.tapd.cn/57709429/s/1674146
2025-03-21 10:07:07 +08:00
CaptainB 72398408c5 ci: update langchain version 2025-03-20 18:55:43 +08:00
junjun 18e4647211 feat: add operate log ui 2025-03-20 16:53:03 +08:00
junjun 642a284b33 feat: export operate log 2025-03-20 16:41:59 +08:00
wxg0103 3951a15e9d refactor: i18n
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-03-20 14:49:23 +08:00
CaptainB 27561410e5 fix: handle param value is blank 2025-03-20 14:21:31 +08:00
CaptainB 47849fc1a5 fix: Add FlibInstance to allowed classes and use restricted_loads for deserialization 2025-03-20 13:53:37 +08:00
shaohuzhang1 f19ad24907
fix: Application import deserialization vulnerability #2604 (#2633) 2025-03-20 12:10:06 +08:00
shaohuzhang1 5baa141b89
fix: type-check (#2629) 2025-03-20 10:12:15 +08:00
wxg0103 ea0ab5e3d2 feat: support lark document
--story=1017908 --user=王孝刚 【知识库】 - X-Pack支持对接飞书文档 https://www.tapd.cn/57709429/s/1673069
2025-03-20 10:05:32 +08:00
junjun e995a663c8 feat: add operate log 2025-03-19 19:12:17 +08:00
shaohuzhang1 4a681297e0
fix: Simple application user did not successfully set up (#2625) 2025-03-19 18:23:05 +08:00
CaptainB a65fc39ae4 chore: mysql icon 2025-03-19 17:07:23 +08:00
junjun bcd41d0c19 feat: add operate log 2025-03-19 17:03:08 +08:00
wangdan-fit2cloud 96562b9f16
fix: Optimize small screen dialogue style 2025-03-19 16:07:02 +08:00
shaohuzhang1 470105f895
feat: Support application、setting、user log recorder (#2617) 2025-03-19 15:45:10 +08:00
wangdan-fit2cloud 7b51d08ea5
feat: Add mobile mode to the conversation, support ctrl/shift/cmd/opt+enter for new line (#2615) 2025-03-19 15:31:27 +08:00
CaptainB 9e62e81158 feat: Add functionality to create and manage internal functions with MySQL and PostgreSQL queries 2025-03-19 14:34:54 +08:00
shaohuzhang1 b7accc54e7
fix: Logging error for logged in user (#2613)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-19 12:07:46 +08:00
CaptainB 4b4b84a220 feat: Add functionality to create and manage internal functions with MySQL and PostgreSQL queries 2025-03-19 12:06:33 +08:00
shaohuzhang1 5ec94860b2
perf: Enhance Word parsing (#2612) 2025-03-19 12:04:43 +08:00
junjun 263c18ebca feat: Add Operate Log 2025-03-18 20:19:26 +08:00
junjun 4f06cfe1ab feat: Add Operate Log 2025-03-18 20:19:26 +08:00
shaohuzhang1 8b52927b4f
fix: The float values collected by the form will be treated as ints when the decimal part is 0, resulting in a type error (#2601)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-18 16:40:15 +08:00
shaohuzhang1 1a7f484a62
feat: User information in the application conversation log. (#2599) 2025-03-18 15:50:30 +08:00
CaptainB aab6a2cdf3 refactor: Improve parameter handling in function execution 2025-03-18 14:03:48 +08:00
wangdan-fit2cloud 3709d34343 fix: Fix chat question 2025-03-18 13:51:10 +08:00
CaptainB bf6cfface6 chore: add some encoder type 2025-03-18 13:16:28 +08:00
CaptainB 075646481d chore: fix some log recorder 2025-03-17 19:13:16 +08:00
CaptainB f6586a481b refactor: Add mysql function log recorder 2025-03-17 17:53:44 +08:00
CaptainB a3cd92c503 refactor: Add mysql function lib 2025-03-17 17:11:04 +08:00
CaptainB 11f63b4556 refactor: Add postgresql function lib 2025-03-17 17:11:04 +08:00
shaohuzhang1 000a3970e0
fix: Multi process startup document modification executed multiple times (#2581) 2025-03-17 17:00:51 +08:00
shaohuzhang1 be31989ab9
fix: Log annotation acquisition details file type data cannot be serialized (#2579) 2025-03-17 16:45:06 +08:00
wangdan-fit2cloud 460de60019
feat: Add import document view 2025-03-17 16:33:52 +08:00
dependabot[bot] 3a9780dc4f
build(deps): bump axios (#2553)
Bumps the npm_and_yarn group with 1 update in the /ui directory: [axios](https://github.com/axios/axios).


Updates `axios` from 0.28.1 to 1.8.3
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.28.1...v1.8.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-17 16:03:47 +08:00
CaptainB 9620817a8f feat: Support dataset log recorder 2025-03-17 15:34:41 +08:00
CaptainB 03a705fc93 feat: Support function lib log recorder 2025-03-17 15:34:41 +08:00
shaohuzhang1 d7ef3ba67b feat: Audit Log 2025-03-17 15:34:41 +08:00
wangdan-fit2cloud 80e7dac0c8
fix: Adjustment of workflow node name auto increment rule(#2562) 2025-03-17 14:41:18 +08:00
wangdan-fit2cloud 03274d9ee5
feat: Update function setting style 2025-03-17 14:04:25 +08:00
wxg0103 6a8d2c1f9c refactor: add enum 2025-03-17 10:33:51 +08:00
CaptainB 510fae6bf1 feat: Support internal functionlib
--story=1017939 --user=刘瑞斌 【函数库】- 支持 系统内置函数 https://www.tapd.cn/57709429/s/1665943
2025-03-17 10:30:25 +08:00
CaptainB ad0b032384 feat: Support functionlib icon and init_fields
--story=1017947 --user=刘瑞斌 【函数库】- 函数支持配置参数及操作优化 https://www.tapd.cn/57709429/s/1664936
2025-03-17 10:30:25 +08:00
wangdan-fit2cloud a09f5c0577
perf: User input interaction style optimization 2025-03-14 19:06:03 +08:00
wxg0103 b8960d57c8 fix: schema access failure to https 2025-03-14 16:26:15 +08:00
wxg0103 f6e089daee feat: support three-party password-free login
--story=1018017 --user=王孝刚 【登录认证】-X-Pack 支持三方应用(企业微信、钉钉、飞书)免密登录 https://www.tapd.cn/57709429/s/1669142
2025-03-13 11:49:05 +08:00
wangdan-fit2cloud 7bd1dfbdaa
fix: Optimization style and fit setting avatar save prompt error(#2523)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
* fix: Setting avatar save prompt error(#2523)

* perf: optimization style
2025-03-12 11:22:52 +08:00
wangdan-fit2cloud 175a80191e
fix: Setting avatar save prompt error(#2523) (#2535) 2025-03-11 15:55:14 +08:00
wangdan-fit2cloud 518202ae0e
perf: Form node support adjusting the order (#2533) 2025-03-11 14:51:57 +08:00
maninhill f1a1c40724
chore: Update USE-CASES.md (#2517)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-03-07 22:02:41 +08:00
shaohuzhang1 e11c550fc2
fix: Simple application model dialogue model error not returned (#2514)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-03-07 14:15:26 +08:00
shaohuzhang1 82b566d580
fix: Having the same suffix for function node names can result in incorrect value retrieval (#2513) 2025-03-07 13:48:52 +08:00
shaohuzhang1 8b9998a53d
fix: When importing documents from a web knowledge base, if a failed document is encountered, the import will be interrupted (#2511) 2025-03-07 10:19:57 +08:00
wxg0103 96ab89adf3 fix: ui logo error 2025-03-06 18:35:37 +08:00
liqiang-fit2cloud d99c9ad1ee build: update build-and-push.yml. 2025-03-06 17:32:49 +08:00
liqiang-fit2cloud d918f96c66 build: update build-and-push.yml. 2025-03-06 17:31:15 +08:00
liqiang-fit2cloud 8b17afc6b3 build: update build-and-push.yml. 2025-03-06 16:36:51 +08:00
liqiang-fit2cloud c5e4bbf2ce build: update build-and-push.yml. 2025-03-06 16:15:43 +08:00
shaohuzhang1 bc3dcda1ec
fix: Team management remove button nationalization (#2504)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-03-05 18:40:09 +08:00
shaohuzhang1 b10147ea36
fix: Workflow embedding sub application thinking process switch cannot control thinking process output (#2502) 2025-03-05 15:18:41 +08:00
wangdan-fit2cloud a738932e68
perf: the form collection component optimized on the mobile(#2467) 2025-03-05 15:05:33 +08:00
shaohuzhang1 ea9c5e0ee8
fix: Model addition, error log printing (#2499) 2025-03-05 14:45:50 +08:00
wxg0103 83d51ea866 refactor: i18n 2025-03-05 13:58:27 +08:00
CaptainB e36f6e08f7 fix: simplify inputFieldConfig handling in UserInputFieldTable
--bug=1052676 --user=刘瑞斌 【应用】高级编排-设置-基本信息-修改用户输入标题后保存-未更新-再次进入后仍展示用户输入 https://www.tapd.cn/57709429/s/1662577
2025-03-05 13:48:09 +08:00
wangdan-fit2cloud 80d4442cd0 fix: workflow style 2025-03-05 12:40:31 +08:00
wxg0103 24f67a3c0f fix: csvTemplate error
--bug=1052711 --user=王孝刚 【知识库】英文模式-文档-QA问答对-下载的csv模版内容错误 https://www.tapd.cn/57709429/s/1661565
2025-03-05 12:19:30 +08:00
wangdan-fit2cloud 13f374e262
perf: Unified deletion confirm button 2025-03-05 10:56:04 +08:00
maninhill 2fc883dedc
chore: Update README_CN.md (#2493) 2025-03-04 21:51:28 +08:00
Yang Chen d60836798b
fix: rename isDisabledChart to isDisabledChat in chat-input-operate component (#2488) 2025-03-04 19:32:49 +08:00
shaohuzhang1 e420a01e0d
fix: Enterprise WeChat docking sub application cannot output thinking process (#2489) 2025-03-04 19:31:49 +08:00
wangdan-fit2cloud b6da5fb79b style: optimization table tooltip style 2025-03-04 19:06:12 +08:00
shaohuzhang1 2157f84c4f
fix: Reference segmentation limit (#2487) 2025-03-04 18:39:49 +08:00
CaptainB 801911d765 refactor: update QwenChatModel to use BaseChatOpenAI and remove unused methods
--bug=1052269 --user=刘瑞斌 【模型】对接千问模型,设置联网参数,maxkb对答不生效。通过python代码调用是可以的。 https://www.tapd.cn/57709429/s/1662132
2025-03-04 17:52:37 +08:00
shaohuzhang1 a75eb9fc86
fix: The newly created simple application dialogue process label is not effective (#2485) 2025-03-04 17:39:31 +08:00
maninhill ed8173e34d
chore: Update USE-CASES.md (#2484) 2025-03-04 16:20:50 +08:00
CaptainB 7e3f631dfc refactor: add model_name parameter to AzureChatModel initialization
--bug=1052553 --user=刘瑞斌 【模型】添加 Azure OpenAI 添加DeepSeek -R1 模型报错 https://www.tapd.cn/57709429/s/1661953
2025-03-04 16:08:20 +08:00
wxg0103 9deb3f6c49 fix: csvTemplate error
--bug=1052711 --user=王孝刚 【知识库】英文模式-文档-QA问答对-下载的csv模版内容错误 https://www.tapd.cn/57709429/s/1661565
2025-03-04 15:49:01 +08:00
wangdan-fit2cloud 1bfc005203
perf: optimization workflow interactive 2025-03-04 15:17:44 +08:00
liqiang-fit2cloud d413287ebc build: update pyproject.toml. 2025-03-04 15:12:02 +08:00
liqiang-fit2cloud d582507523 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-03-04 15:05:41 +08:00
shaohuzhang1 509055423a
fix: The page cannot continue streaming response when changing the conversation name in the conversation reply (#2480) 2025-03-04 14:58:29 +08:00
CaptainB 7faa79d361 refactor: disable buttons based on permission type
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
--bug=1052737 --user=刘瑞斌 【函数库】-非当前用户所有的函数,不应该支持复制和导出 https://www.tapd.cn/57709429/s/1661776
2025-03-04 14:15:10 +08:00
shaohuzhang1 9d5f9fde62
fix: Retrieve the dialogue record list document and confirm the parameters (#2479) 2025-03-04 14:13:36 +08:00
shaohuzhang1 c65ef97301
fix: Fixed the default value of not selecting 'select' after switching models (#2477) 2025-03-04 11:34:56 +08:00
CaptainB 13ce64e51a fix: Compatible with dashscope tts
--bug=1052708 --user=刘瑞斌 【应用】-使用阿里云语音合成模型sambert-zhichu-v1,对话报错 https://www.tapd.cn/57709429/s/1661551
2025-03-04 10:49:36 +08:00
CaptainB 5e563054f9 fix: Fix default_value not show when image model changed
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1052695 --user=刘瑞斌 【应用】高级编排-设置-图片生成组件-切换模型后图片尺寸为空-未同步切换到当前模型的首个尺寸 https://www.tapd.cn/57709429/s/1661346
2025-03-03 18:49:09 +08:00
liqiang-fit2cloud 6805ebe38f Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-03-03 17:36:28 +08:00
wxg0103 e7f13871f8 fix: member list does not support ignoring case
--bug=1052688 --user=王孝刚 【团队成员】成员列表搜索不支持忽略大小写 https://www.tapd.cn/57709429/s/1661230
2025-03-03 16:19:30 +08:00
wxg0103 4fc429a8d1 fix: record log content error
--bug=1052670 --user=王孝刚 应用-企业微信对接应用后,在企业微信中与应用对话,对话日志中<think></think>思考过程输出了两次 https://www.tapd.cn/57709429/s/1661186
2025-03-03 16:12:43 +08:00
wangdan-fit2cloud 3c3f47bb5b fix: Similarity value error 2025-03-03 16:05:40 +08:00
wangdan-fit2cloud 685b01be01 fix: Optimization node rename dialog 2025-03-03 15:44:12 +08:00
wangdan-fit2cloud e8c559580a perf: Optimization codemirror title 2025-03-03 15:29:23 +08:00
liqiang-fit2cloud dea8c73cdd Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-03-03 15:06:11 +08:00
shaohuzhang1 dc79a22ba3
feat: Non streaming response answers_list (#2461) 2025-03-03 14:54:45 +08:00
CaptainB 7497c1b7cd fix: Fix user input table title not changed
--bug=1052676 --user=刘瑞斌 【应用】高级编排-设置-基本信息-修改用户输入标题后保存-未更新-再次进入后仍展示用户输入 https://www.tapd.cn/57709429/s/1661083
2025-03-03 14:42:39 +08:00
shaohuzhang1 7eff1c919b
fix: After generating the problem, jump to the first page (#2457) 2025-03-03 12:04:26 +08:00
CaptainB 7cdd188b06 refactor: rename function lib export subfix
--bug=1052638 --user=刘瑞斌 函数库导出后缀名优化 https://www.tapd.cn/57709429/s/1660837
2025-03-03 10:22:49 +08:00
maninhill bd5d129778
chore: Update README.md (#2452) 2025-03-01 09:31:24 +08:00
wangdan-fit2cloud 89792d5d3d
perf: optimization codemirror component 2025-02-28 22:42:23 +08:00
liqiang-fit2cloud 19ab61a1d4 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-02-28 18:04:19 +08:00
shaohuzhang1 aa4a834c85
fix: Document name sorting (#2448) 2025-02-28 17:56:12 +08:00
itaa ed8f8f8a3e
fix: ollama model provider can not set 'num_ctx' etc. parameter #2442 (#2444)
langchain-openai is not compatible with parameter Settings in ollama, such as num_ctx. Therefore, you need to create model instances using langchain-ollama

(cherry picked from commit 42ae7b443d)
2025-02-28 17:45:48 +08:00
wangdan-fit2cloud a64adc2504 perf: optimization style 2025-02-28 17:31:08 +08:00
liqiang-fit2cloud a528de752b Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-02-28 17:06:18 +08:00
wangdan-fit2cloud 8a02f62c70
perf: Optimization of chat input with line break when pressing enter 2025-02-28 16:47:48 +08:00
wangdan-fit2cloud 463ad49c9f perf: optimization translation and style 2025-02-28 15:34:45 +08:00
liqiang-fit2cloud 96b8898c05 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-02-28 15:21:49 +08:00
wangdan-fit2cloud ee7cc8058f
fix: [xpack]After replacing the logo,The original logo will flash(#2270)
* perf: Top N Segments increase to 10000

* fix: [xpack]After replacing the logo,The original logo will flash(#2270)
2025-02-28 15:21:24 +08:00
CaptainB dd84da4add fix: swagger show more args 2025-02-28 15:07:51 +08:00
liqiang-fit2cloud 2abf05f11a Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-02-28 12:28:40 +08:00
shaohuzhang1 72db45bcc0
fix: Changing the answer does not take effect (#2437) 2025-02-28 11:51:55 +08:00
shaohuzhang1 7d47f97354
fix: Sending error when extracting multiple forms and documents in the workflow (#2434) 2025-02-27 19:34:36 +08:00
wxg0103 badd722f9d refactor: i18n 2025-02-27 18:32:25 +08:00
wangdan-fit2cloud 880e171933
perf: Optimization of modifying node names in workflow 2025-02-27 18:18:18 +08:00
CaptainB 18fa06678c refactor: Cancel last autoplay audio
--story=1017953 --user=刘瑞斌 【优化】多轮对话,语音识别自动播放,会重叠播放 https://www.tapd.cn/57709429/s/1660001
2025-02-27 17:06:23 +08:00
wangdan-fit2cloud 54ebfc30f2 fix: Modify generate question page translation and bugs 2025-02-27 16:19:13 +08:00
CaptainB d5f867c76c refactor: Password input constractor 2025-02-27 16:12:10 +08:00
liqiang-fit2cloud f38af7f2e8 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-02-27 15:41:14 +08:00
wxg0103 51a29a997b fix: Knowledge source redirection failed 2025-02-27 15:16:34 +08:00
liqiang-fit2cloud b988d5abee Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-02-27 15:00:51 +08:00
shaohuzhang1 afaf3d6e26
fix: The workflow cannot function properly after the conversation flow is disconnected (#2428) 2025-02-27 14:21:47 +08:00
CaptainB c433c03fc0 fix: Fix variable assign num not working
--bug=1052497 --user=刘瑞斌 【变量赋值】-将全局变量赋值为num类型,输出时报错 https://www.tapd.cn/57709429/s/1659733
2025-02-27 12:08:24 +08:00
CaptainB c92ad06092 refactor: Support the generated images horizontal tiling display
--story=1017907 --user=刘瑞斌 【越秀农牧】图片生成节点,生成的图片,希望可以支持横向平铺展示 https://www.tapd.cn/57709429/s/1659636
2025-02-27 10:58:54 +08:00
liqiang-fit2cloud 01729157b7 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-02-27 10:41:04 +08:00
shaohuzhang1 1811a80ecc
perf: enable gzip. (#2422) 2025-02-27 10:17:04 +08:00
wangdan-fit2cloud dc0ae4dc42 style: Optimize chat page style 2025-02-26 19:39:12 +08:00
CaptainB 32b7aa99c5 fix: Fix variable-assign-node cannot publish
--bug=1052464 --user=刘瑞斌 【应用】-编排应用中存在变量赋值节点,发布应用失败 https://www.tapd.cn/57709429/s/1659401
2025-02-26 17:43:53 +08:00
shaohuzhang1 9b93cca790
fix: Import zip report error (#2420) 2025-02-26 17:17:01 +08:00
shaohuzhang1 f65bfbe83c
fix: Left click to copy incomplete content (#2419) 2025-02-26 17:12:36 +08:00
wangdan-fit2cloud 66164e6cde fix: execution detail missing field 2025-02-26 16:48:31 +08:00
liqiang-fit2cloud 9a69d23e5a Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2025-02-26 15:54:25 +08:00
liqiang-fit2cloud 68b9225818 perf: enable gzip. 2025-02-26 15:54:19 +08:00
wangdan-fit2cloud df3c0800f0 fix: generate question translate bugs 2025-02-26 15:27:26 +08:00
liqiang-fit2cloud 34cda84064 perf: enable gzip. 2025-02-26 15:20:07 +08:00
wangdan-fit2cloud c6a3024807
fix: Resolve the issue of a function returning 0 as a result (#2389) 2025-02-26 14:53:22 +08:00
wangdan-fit2cloud 62ab02ec0e fix: MsgConfirm distinguishCancelAndClose
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-02-26 12:55:06 +08:00
shaohuzhang1 eb6f4e8cb8
fix: VLLM Supplier Dialogue Verification (#2412) 2025-02-26 12:04:25 +08:00
shaohuzhang1 50dd8fae41
fix: Paragraph list unsorted (#2411) 2025-02-26 11:52:44 +08:00
shaohuzhang1 effe37fa6c
fix: URL encoding parameters not decompiled (#2409) 2025-02-26 11:30:04 +08:00
shaohuzhang1 413fa6f0c2
fix: When generating a problem, the generated data is incorrect (#2408) 2025-02-26 11:00:07 +08:00
shaohuzhang1 c6c3799d08
fix: the error in obtaining the document list (#2406) 2025-02-26 10:26:42 +08:00
wxg0103 62ae8d124b fix: The audio file does not display M4A
--bug=1052445 --user=王孝刚 【编排应用】基本信息的上传文件界面,音频文件中没有显示M4A格式 https://www.tapd.cn/57709429/s/1658969
2025-02-26 10:26:27 +08:00
shaohuzhang1 fdb2cbd9ab
fix: File upload failed (#2398) 2025-02-25 17:02:37 +08:00
shaohuzhang1 e1f0f39987
fix: When adding members in bulk, existing members will be automatically passed in, do not affect the joining of other members #2351 (#2397) 2025-02-25 16:54:29 +08:00
shaohuzhang1 218a247684
fix: Dialogue log export, question time does not match on the page (#2396) 2025-02-25 16:17:41 +08:00
CaptainB 5da758e8a1 fix: Fix import function lib permission
--bug=1052409 --user=刘瑞斌 【函数库】导入一个原来是公有的函数,函数的权限依然是公有 https://www.tapd.cn/57709429/s/1658705
2025-02-25 16:03:55 +08:00
CaptainB 666d58659e fix: Fix user cannot export public function lib
--bug=1052408 --user=刘瑞斌 【函数库】导出非当前用户创建的函数,报错 https://www.tapd.cn/57709429/s/1658696
2025-02-25 15:59:52 +08:00
CaptainB 9dbbe26b17 fix: Fix add function lib error
--bug=1052403 --user=刘瑞斌 【函数库】-创建函数失败 https://www.tapd.cn/57709429/s/1658691

--bug=1052404 --user=刘瑞斌 【函数库】新建函数,无法添加参数 https://www.tapd.cn/57709429/s/1658693
2025-02-25 15:46:22 +08:00
wxg0103 8dc5b94198 refactor: add i18n 2025-02-25 15:20:51 +08:00
wxg0103 09a80188ac refactor: add i18n 2025-02-25 15:20:01 +08:00
shaohuzhang1 8c45e92ee4
feat: The OpenAI interface supports the thought process (#2392) 2025-02-25 14:22:51 +08:00
CaptainB dfcb724502 refactor: Support string,json,num types 2025-02-25 14:05:58 +08:00
wxg0103 a01f21e3ac refactor: ollama reranker 2025-02-25 11:07:49 +08:00
CaptainB 52fb9be576 chore: Fix typo.
--bug=1052375 --user=刘瑞斌 【知识库】-生成问题的选择分段选项错误 https://www.tapd.cn/57709429/s/1657971
2025-02-25 10:59:01 +08:00
wxg0103 647c660476 fix: ui build error 2025-02-25 09:15:38 +08:00
shaohuzhang1 3aa5dd3694
feat: The demonstration page supports modifying dialogue summaries (#2348) 2025-02-24 18:53:21 +08:00
shaohuzhang1 5a3acc8649
fix: The locally loaded vector model is missing the libGL.so library (#2382) 2025-02-24 18:43:01 +08:00
wxg0103 9185515660 refactor: ollama support rerank 2025-02-24 18:35:37 +08:00
shaohuzhang1 f02b40b830
feat: Upgrade xinference client (#2381) 2025-02-24 18:23:26 +08:00
wangdan-fit2cloud 261915db29
perf: Add a tip before exiting the workflow 2025-02-24 17:53:06 +08:00
CaptainB 5eec0f7975 fix: Fix browser text to speech cannot resume and cancel
--bug=1052345 --user=刘瑞斌 【github#2352】【应用】使用浏览器内置TTS,切换历史记录内容播放会没有声音 https://www.tapd.cn/57709429/s/1657771
2025-02-24 17:37:12 +08:00
guqing 76e6b6e276
chore(i18n): optimize english translations for appearance settings 2025-02-24 17:30:57 +08:00
wangdan-fit2cloud 4367b1c650
feat: Create workflow applications that support template selection 2025-02-24 17:29:54 +08:00
shaohuzhang1 6b72611b72
fix: VLLM supplier recalculates token function (#2375) 2025-02-24 17:15:46 +08:00
shaohuzhang1 2d4deda6b4
docs: Create an application and add workflow parameters (#2374) 2025-02-24 16:33:35 +08:00
CaptainB 3c6b65baa1 fix: Remove vllm image cache
--bug=1052365 --user=刘瑞斌 【github#2353】vllm视觉模型修改最大tokens不生效 https://www.tapd.cn/57709429/s/1657667
2025-02-24 16:30:13 +08:00
shaohuzhang1 fa1886a17e
fix: Workflow execution decimal cannot be serialized (#2372) 2025-02-24 16:29:59 +08:00
maninhill f434dcfaf6
chore: Update README.md (#2371) 2025-02-24 16:12:35 +08:00
maninhill 8be93626c0
chore: Update README.md (#2369) 2025-02-24 16:09:06 +08:00
guqing 0ea642521c
chore(i18n): optimize english translations and standardize title case (#2367) 2025-02-24 15:52:40 +08:00
maninhill 9ed8155c95
chore: Update README.md (#2366) 2025-02-24 15:47:51 +08:00
maninhill 91dda3a84d
chore: Update README.md (#2365) 2025-02-24 15:42:15 +08:00
maninhill d6f999a5c8
chore: Update README.md (#2364) 2025-02-24 15:40:44 +08:00
maninhill 121c3e95c8
chore: Update README.md (#2363) 2025-02-24 15:39:53 +08:00
guqing d3902a51ca fix: drawer title for slack setting 2025-02-24 11:19:46 +08:00
shaohuzhang1 8477e957bd
fix: Function library execution role group (#2358) 2025-02-24 10:07:14 +08:00
wangdan-fit2cloud ad29a0d85b fix: type bugs 2025-02-21 15:07:16 +08:00
wangdan-fit2cloud a2e5180236
feat: User input parameters and interface parameters support adjusting the order(#2103)
* feat: table support sort(#2103)

* feat: User input parameters and interface parameters support adjusting the order(#2103)

* feat: User input parameters and interface parameters support adjusting the order(#2103)
2025-02-21 12:21:00 +08:00
刘瑞斌 df940686e9
Variable assign (#2346)
* feat: Support variable assign

* feat: Workfloat support variable assign(#2114)

* feat: Support variable assign save input output value

* feat: Execution detail support variable assign(#2114)

* feat: Support variable assign dict array value config

* chore: rename package

---------

Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-21 11:00:56 +08:00
shaohuzhang1 bb557fd187
fix: Child application node, input parameters too long, error reported during Q&A (#2347) 2025-02-21 10:28:02 +08:00
Harry f5155e7f7e
fix: bad code copy (#2341)
Co-authored-by: 杨树海 <yangshuhai@pdnews.cn>
2025-02-21 10:12:41 +08:00
Noven Zhen 66539a75dc
fix bug:when docker build image has bugs due to the multiple definition in django.po (#2337) 2025-02-21 10:10:06 +08:00
maninhill 6e4990167a
chore: Update README_CN.md (#2343) 2025-02-20 22:01:52 +08:00
wxg0103 cbc6fc4710 refactor: i18n 2025-02-20 17:59:45 +08:00
pq 4df183c5a3
perf: optimize embed mode (#2331) 2025-02-20 11:20:28 +08:00
guqing 097a24fbbd
feat(ui): add Slack app integration for MaxKB app
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-02-19 16:02:12 +08:00
wangdan-fit2cloud 33c07fdd33
fix: typos 2025-02-19 15:51:50 +08:00
wangdan-fit2cloud cc7f49fa8b
perf: Improving the conversation to a left-right layout(#2286)
* refactor: Optimize code

* feat: Improving the conversation to a left-right layout(#2286)
2025-02-19 15:48:04 +08:00
shaohuzhang1 2a84c58d4b
fix: Dialogue image cannot be enlarged #2296 (#2327) 2025-02-19 14:12:57 +08:00
shaohuzhang1 a06c5c097e fix: Tokens cannot be obtained from the model dialogue 2025-02-19 12:06:55 +08:00
wangdan-fit2cloud 0d96f797f1 feat: Multi channel recall execution details optimize style 2025-02-18 16:56:44 +08:00
shaohuzhang1 168f822416 refactor: Multi channel recall, adding display of knowledge base titles and other information 2025-02-18 16:56:44 +08:00
wangdan-fit2cloud ff3dec28d2
feat: Supports specified user input title(#2288) 2025-02-18 15:03:37 +08:00
wangdan-fit2cloud dd047747f6
perf: Close editor save content 2025-02-18 14:54:12 +08:00
shaohuzhang1 7f6c528291
feat: The discriminator supports variables (#2311) 2025-02-18 14:45:11 +08:00
shaohuzhang1 08c734b242
feat: Generate problem support for title variable (#2310) 2025-02-18 14:30:18 +08:00
CaptainB a16968d6e5 feat: Supports user input field type password
--story=1017895 --user=刘瑞斌 【用户输入】- 组件类型为文本框类型的支持密文显示#2134 https://www.tapd.cn/57709429/s/1655257
2025-02-18 12:57:06 +08:00
CaptainB c44fd8a40b feat: Supports specified user input title
--story=1017888 --user=刘瑞斌 【高级编排应用】“用户输入”可以自定义。 #2288 https://www.tapd.cn/57709429/s/1655214
2025-02-18 12:57:06 +08:00
wxg0103 f00c9ca611 fix: Complete document parameters
--bug=1052250 --user=王孝刚 【API】在swagger上调用对话API ,希望把参数给补充完整。(比如,上传文档的一些参数) https://www.tapd.cn/57709429/s/1655242
2025-02-18 11:19:59 +08:00
wxg0103 237dd8c209 refactor: oidc add scope
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-02-17 19:06:07 +08:00
wxg0103 7f597b6409 feat: support ollama rerank
--story=1017862 --user=王孝刚 希望支持在 Ollama 中添加 rerank 模型 issue#2243 https://www.tapd.cn/57709429/s/1655139
2025-02-17 18:38:49 +08:00
wxg0103 a071d7c89b fix: Alibaba Cloud full modal docking error
--bug=1052232 --user=王孝刚 【模型设置】-大语言模型/语音识别模型 对接不上阿里云的全模态模型 https://www.tapd.cn/57709429/s/1655034
2025-02-17 18:17:54 +08:00
wangdan-fit2cloud b917b72fe6
feat: Chat page retains the display of the last conversation 2025-02-17 17:14:45 +08:00
CaptainB 9249c1756f refactor: Support image_list, document_list while using swagger api
--story=1017867 --user=刘瑞斌 对话API支持上传文件、语音、图像和视频,用于实现maxkb的文件解析及多模态对话#2228 https://www.tapd.cn/57709429/s/1654842
2025-02-17 16:21:28 +08:00
shaohuzhang1 83cd69e5b7
feat: Generate problem support for generating unfinished paragraphs #2174 (#2299) 2025-02-17 15:49:41 +08:00
CaptainB f45855c34b feat: Import and Export function lib 2025-02-17 10:31:34 +08:00
wangdan-fit2cloud a1fca58864 perf: Optimize translation
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-02-14 18:02:50 +08:00
CaptainB 125e7b47e8 feat: Support switch input for application user params
--story=1017769 --user=刘瑞斌 【越秀农牧】希望用户输入可以添加一个开关组件 https://www.tapd.cn/57709429/s/1654429
2025-02-14 17:49:59 +08:00
CaptainB e2728ce8f7 feat: Support sorting feat for knowledge base documents
--story=1017634 --user=刘瑞斌 知识库文档列表排序功能,可以根据各列属性排序 https://www.tapd.cn/57709429/s/1654419
2025-02-14 17:49:48 +08:00
wxg0103 9c67f6bfe1 refactor: Search ignores capitalization
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--story=1017866 --user=王孝刚 【Bug转需求】【搜索】-函数库、模型、团队成员界面搜索不支持忽略大小写 #2126 https://www.tapd.cn/57709429/s/1654282
2025-02-14 10:56:02 +08:00
wxg0103 a8d79c5e60 fix: Defect of embedding application parameters as empty and reporting errors
--bug=1052184 --user=王孝刚 【github#2273】【应用】-有非必填接口传参的编排应用,作为节点加入新的编排应用后,接口传参为空时对话报错 https://www.tapd.cn/57709429/s/1654259
2025-02-14 10:39:28 +08:00
wxg0103 dd5db3eaa6 feat: audio support m4a
--story=1017864 --user=王孝刚 【应用】上传音频文件类型中支持m4a类型 #2276 https://www.tapd.cn/57709429/s/1654257
2025-02-14 10:39:17 +08:00
CaptainB c524fbc0e4 fix: Fix excel merge cells header 2025-02-14 10:26:18 +08:00
liqiang-fit2cloud 0640d4c6c6 build: update build-and-push.yml. 2025-02-13 18:30:19 +08:00
liqiang-fit2cloud 0d29972849 build: update build-and-push.yml. 2025-02-13 18:25:36 +08:00
liqiang-fit2cloud 6f5bed1e0f build: update build-and-push.yml. 2025-02-13 18:04:14 +08:00
liqiang-fit2cloud dd79c3ca0d Revert "Revert "perf: Update qemu (#2267)""
This reverts commit b86054d943.
2025-02-13 18:03:01 +08:00
liqiang-fit2cloud df7aa633ad Revert "build: update build-and-push.yml."
This reverts commit 8d10e09602.
2025-02-13 18:02:54 +08:00
liqiang-fit2cloud 8d10e09602 build: update build-and-push.yml. 2025-02-13 18:02:28 +08:00
liqiang-fit2cloud b86054d943 Revert "perf: Update qemu (#2267)"
This reverts commit 93fc7df159.
2025-02-13 18:00:36 +08:00
liqiang-fit2cloud 60d7032b9f build: update build-and-push.yml. 2025-02-13 17:55:55 +08:00
吴小白 93fc7df159
perf: Update qemu (#2267)
Signed-off-by: 吴小白 <296015668@qq.com>
2025-02-13 16:53:32 +08:00
shaohuzhang1 051dc13322
perf: Add custom token_ids method (#2264) 2025-02-13 15:40:09 +08:00
wangdan-fit2cloud dac0a9c3f3 fix: template icon error 2025-02-13 14:22:24 +08:00
wxg0103 20260df9a1 fix: application set language error
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-02-13 11:45:25 +08:00
wangdan-fit2cloud c59a19bbcb perf: Optimize chat input placeholder 2025-02-13 11:12:16 +08:00
wxg0103 d8170c3897 fix: No error message prompted after QR code failure
--bug=1052150 --user=王孝刚 【系统设置】钉钉二维码失效后,点击刷新,使用非当前组织的用户扫码登录,没有弹错误提示 https://www.tapd.cn/57709429/s/1653901
2025-02-13 10:26:22 +08:00
wxg0103 f4f47a8f33 fix: No error message prompted after QR code failure
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1052150 --user=王孝刚 【系统设置】钉钉二维码失效后,点击刷新,使用非当前组织的用户扫码登录,没有弹错误提示 https://www.tapd.cn/57709429/s/1653901
2025-02-12 17:53:36 +08:00
wangdan-fit2cloud c1efc721e2
fix: Mac upload folder error 2025-02-12 17:42:14 +08:00
wangdan-fit2cloud d44bdd2dfd fix: i18n bug 2025-02-12 16:35:47 +08:00
wangdan-fit2cloud a22c2e10b0
fix: Display setting bugs 2025-02-12 16:19:15 +08:00
shaohuzhang1 4874c0e4b0
fix: AI dialogue context removes form data (#2257) 2025-02-12 16:07:44 +08:00
shaohuzhang1 6a5ec866c0
fix: Lost content during the answering process (#2256) 2025-02-12 15:33:24 +08:00
wangdan-fit2cloud 2ba7a24f95
fix: Check the option to add segment title as related questions during import, and related questions after modifying the title (#2255) 2025-02-12 15:13:40 +08:00
wxg0103 3de5daccbc refactor: tencent cloud icon 2025-02-12 15:07:36 +08:00
liqiang-fit2cloud 02d9f8970e build: update build-and-push.yml. 2025-02-12 14:49:21 +08:00
liqiang-fit2cloud 72a72b90fb build: update build-and-push.yml. 2025-02-12 14:35:14 +08:00
liqiang-fit2cloud 13b2b6069e build: update build-and-push.yml. 2025-02-12 14:23:58 +08:00
shaohuzhang1 d28c5befdf
fix: The node cannot respond after adding fields to the form node (#2252) 2025-02-12 14:11:54 +08:00
shaohuzhang1 3336f30112
perf: Workflow Canvas Rendering (#2250) 2025-02-12 11:42:59 +08:00
maninhill 9705f6c99c
Update README.md (#2249) 2025-02-12 11:02:41 +08:00
wangdan-fit2cloud c4b8e74f74
perf: Cancel automatic closure of debugging dialog 2025-02-12 10:53:06 +08:00
wxg0103 7ab5314665 fix: chat record message export error 2025-02-12 10:28:51 +08:00
liqiang-fit2cloud 282dabd722 docs: update README.md. 2025-02-12 10:28:21 +08:00
maninhill 18742b52e5
chore: Update README.md (#2245) 2025-02-12 10:12:54 +08:00
maninhill a282b8373a
chore: Update README.md (#2244) 2025-02-12 10:11:15 +08:00
liqiang-fit2cloud 73ec4e542a docs: update README_CN.md. 2025-02-12 09:44:32 +08:00
wxg0103 1ace2c8d54 feat: support Tencent Cloud
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--story=1017838 --user=王孝刚 【模型设置】支持腾讯云的大语言模型  issue#2230 https://www.tapd.cn/57709429/s/1653533
2025-02-11 18:53:22 +08:00
wxg0103 b6a1781a9c feat: support Tencent Cloud
--story=1017838 --user=王孝刚 【模型设置】支持腾讯云的大语言模型  issue#2230 https://www.tapd.cn/57709429/s/1653533
2025-02-11 18:31:50 +08:00
wangdan-fit2cloud 9cd89ef01b fix: text error 2025-02-11 18:29:28 +08:00
wxg0103 5fde98d317 feat: support Tencent Cloud
--story=1017838 --user=王孝刚 【模型设置】支持腾讯云的大语言模型  issue#2230 https://www.tapd.cn/57709429/s/1653533
2025-02-11 18:01:41 +08:00
wxg0103 de1d6bda5b fix: Non organizational DingTalk users scan the code to log in - can successfully log in and create a user
--bug=1052022 --user=王孝刚 【扫码登录】非组织下钉钉用户扫码登录-可登录成功并创建用户 https://www.tapd.cn/57709429/s/1653465
2025-02-11 16:35:59 +08:00
CaptainB 89c08b4bb0 fix: Filter blank sheet
--bug=1052097 --user=刘瑞斌 【github#2196】【应用编排】应用对话的时候上传带空白sheet的表格会报错 https://www.tapd.cn/57709429/s/1653414
2025-02-11 15:17:24 +08:00
wxg0103 f333658ac6 fix: i18n 2025-02-11 10:19:57 +08:00
shaohuzhang1 10a35876bf
fix: optimization
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
* fix: Style optimization

* perf: SCAN login setting views Style optimization

* fix: markdown preview i18n

---------

Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-10 19:11:04 +08:00
guqing d31fed92d7
chore(i18n): add missing translation for "edition" in about dialog (#2222) 2025-02-10 19:04:04 +08:00
maninhill 415748a0c1
chore: Add Star History (#2221) 2025-02-10 18:47:50 +08:00
BugKing 07d5258551
docs: Update screenshots in README.md (#2220) 2025-02-10 18:40:27 +08:00
limin abd422b5cf Update USE-CASES.md 2025-02-10 18:21:47 +08:00
liqiang-fit2cloud f51d1493e6 fix: fix typo. 2025-02-10 17:58:09 +08:00
八千流 c3484e5ebc
Update USE-CASES.md (#2217)
Co-authored-by: liqiang-fit2cloud <liqiang@fit2cloud.com>
2025-02-10 17:57:05 +08:00
wangyicheng af7ba9669e Update USE-CASES.md
Update
2025-02-10 17:48:36 +08:00
lan-yonghui 458ef48a84 perf: Update USE-CASES.md 2025-02-10 17:42:15 +08:00
莫鹍 7db0fa44a9 Add a case 2025-02-10 17:34:51 +08:00
w940853815 41aafdd1cc perf: Update USE-CASES.md 2025-02-10 17:30:43 +08:00
MatataYou 35147287fb Update USE-CASES.md 2025-02-10 17:25:21 +08:00
maninhill 0de1cb395f
chore: Add USE-CASES.md (#2208) 2025-02-10 17:18:51 +08:00
wangdan-fit2cloud 62a8bdb602 fix: theme setting display bug 2025-02-10 17:00:11 +08:00
BugKing 50f2c9629d
docs: Update README.md (#2207) 2025-02-10 16:47:40 +08:00
shaohuzhang1 0e68f4a852
fix: Set application default language (#2206) 2025-02-10 16:16:56 +08:00
shaohuzhang1 a9b2a1cd26
fix: Set default language (#2205) 2025-02-10 16:14:08 +08:00
shaohuzhang1 91135260c0
fix: Fix default language when chat language is null (#2204)
* fix: Fix default language

* fix: Fix default language when chat language is null

---------

Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-10 15:14:11 +08:00
shaohuzhang1 9937b6156d
fix: Fix default language (#2202)
Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-10 14:43:36 +08:00
wxg0103 6482e030ee fix: anthropic image error 2025-02-10 14:17:07 +08:00
shaohuzhang1 3e90a9f102
fix: User default language based on browser language (#2201) 2025-02-10 14:16:34 +08:00
shaohuzhang1 fa7e544a15
feat: user manual and help doc support i18n (#2199)
Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-10 13:59:37 +08:00
shaohuzhang1 d6d8a9f178
fix: zip Icon missing (#2198)
Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-10 13:18:53 +08:00
wangdan-fit2cloud 2a316bc92d fix: Fix style line breaks 2025-02-10 12:46:22 +08:00
shaohuzhang1 6ecc1c6aa8
fix: The dialogue prompt is incorrect (#2197) 2025-02-10 11:59:00 +08:00
shaohuzhang1 be27e15885
fix: After the workflow form collection node is recalled, the subsequent nodes will not execute (#2195) 2025-02-10 11:36:49 +08:00
shaohuzhang1 041cf09011
fix: The Chinese characters in the form data have been transcoded (#2192) 2025-02-10 11:08:36 +08:00
CaptainB a325b26704 fix: Fix xinference cannot add deepseek-vl-chat model
--bug=1052077 --user=刘瑞斌 【github#2051】【模型管理】xinference添加issue中提供的视觉模型失败 https://www.tapd.cn/57709429/s/1652171
2025-02-10 11:05:42 +08:00
wxg0103 8530237e3c fix: i18n
--bug=1052079 --user=王孝刚 【应用】-简体中文语境下,导出对话日志,文件中[优化后的问题]字段显示的是繁体中文 https://www.tapd.cn/57709429/s/1652202
2025-02-10 11:05:10 +08:00
shaohuzhang1 cdb804bb88
fix: Workflow non streaming dialogue cannot respond (#2188) 2025-02-10 10:58:41 +08:00
shaohuzhang1 d4fbf0997a
fix: Opening statement shortcuts can only handle one issue (#2186) 2025-02-10 10:24:43 +08:00
shaohuzhang1 f16f417bd5
fix: The knowledge base table file upload is missing a header (#2185) 2025-02-10 10:22:23 +08:00
shaohuzhang1 ce79e3947d
fix: Simple application dialogue, non streaming, unable to respond to data (#2184) 2025-02-09 22:32:07 +08:00
shaohuzhang1 883a3b6d27
fix: Opening remarks with built-in quick Q&A and tag conflicts result in HTML rendering failure (#2183) 2025-02-09 22:11:04 +08:00
shaohuzhang1 de95b6c925
fix: The workflow encountered an error in displaying data for the next node of the form node (#2182) 2025-02-09 21:32:41 +08:00
shaohuzhang1 80a700b890
fix: Excerpt from the thinking process (#2181) 2025-02-09 19:51:50 +08:00
shaohuzhang1 44dd952d3b
fix: The form node submission button has not been internationalized (#2180) 2025-02-09 19:22:26 +08:00
shaohuzhang1 e1f65022a4
fix: When the thinking process label is empty, do not process the thinking process (#2179) 2025-02-09 17:35:31 +08:00
shaohuzhang1 d9abe8d675
fix: Dealing with the issue of filename exceeding 128 characters when uploading documents(#2144)
Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-09 15:09:55 +08:00
shaohuzhang1 761b686214
fix: refine chat document and image layout,and some translation issues (#2177)
* fix: Rrefine english words

* fix: refine chat document and image layout,and some translation issues

---------

Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-09 13:36:08 +08:00
shaohuzhang1 96c79f44ed
fix: Refine english words (#2176)
Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-09 12:26:48 +08:00
CaptainB 8668796c5d fix: Fix speech recognition failed, the input box did not restore the default style.
--bug=1051969 --user=刘瑞斌 【应用】语音识别失败后输入框没有恢复默认的样式 https://www.tapd.cn/57709429/s/1651864
2025-02-08 21:01:51 +08:00
guqing 89e23198e0 chore(i18n): simplify tab group titles by removing redundant Settings 2025-02-08 20:29:19 +08:00
刘瑞斌 061a41c4a1
feat: Support reasoning content #2135 (#2158) 2025-02-08 20:26:53 +08:00
wxg0103 0cc1d00140 chore: model provider drop down options 2025-02-08 19:02:12 +08:00
maninhill 3480a8fda4
chore: Update README_CN.md (#2166) 2025-02-08 18:21:29 +08:00
shaohuzhang1 6c6821df20
fix: refine translation (#2165)
Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2025-02-08 17:30:36 +08:00
guqing d2cd48a86a
chore(i18n): improve UI translation for AI chat page (#2160) 2025-02-08 17:19:56 +08:00
wxg0103 0e817e1e06 fix: Prompt message error
--bug=1052066 --user=王孝刚 [系统设置] LDAP环境测试连接失败 https://www.tapd.cn/57709429/s/1651802
2025-02-08 17:18:09 +08:00
guqing ccd23eabb1
chore(i18n): unify terminology by replacing "Link" and "Associate" with "Relate" for knowledge context (#2161) 2025-02-08 17:13:28 +08:00
maninhill 621c0812d5
chore: Update README.md (#2162) 2025-02-08 16:54:54 +08:00
wxg0103 b90995d3aa fix: defect of incorrect document names after importing CSV and docx files into the knowledge base
--bug=1052039 --user=王孝刚 【知识库】-压缩文件中包含csv、docx文件时,导入到知识库后,文档名称包含文件夹名称 https://www.tapd.cn/57709429/s/1651752
2025-02-08 16:00:57 +08:00
wxg0103 2c03b2859d fix: Fix the defect that the knowledge base vectorization time is inconsistent with the system
--bug=1052060 --user=王孝刚 【知识库】-同步Web站点知识库,同步状态的时间与当前时区不一致,晚8小时 https://www.tapd.cn/57709429/s/1651754
2025-02-08 16:00:47 +08:00
guqing bf12d2bfd3
chore: improve UI translation for workflow application overview page (#2156) 2025-02-08 15:41:59 +08:00
wxg0103 88718c7108 refactor: i18n
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-02-08 11:28:53 +08:00
wangdan-fit2cloud 4a85d2302b fix: chat views refine translation 2025-02-08 10:43:27 +08:00
wangdan-fit2cloud 5ec072ef17 fix: refine translation 2025-02-07 18:28:49 +08:00
guqing bf24f195f2
chore: refine UI text consistency and translation accuracy for workflow (#2153) 2025-02-07 18:26:28 +08:00
wangdan-fit2cloud 950f4a7ec6 fix: optimize 2025-02-07 17:02:00 +08:00
guqing 4f9cc96eb6 chore: refine UI text consistency and translation accuracy for Knowledge 2025-02-07 17:01:10 +08:00
wxg0103 b45cd86edb refactor: siliconflow icon 2025-02-07 16:59:02 +08:00
wxg0103 dd80d8614a refactor: siliconflow icon 2025-02-07 16:32:17 +08:00
wangdan-fit2cloud 96d688318a fix: upload image style error 2025-02-07 15:50:30 +08:00
shaohuzhang1 06feeecedc
fix: Application history log interface loading status display error (#2151) 2025-02-07 15:35:27 +08:00
shaohuzhang1 a3d6083188
fix: XLS, XLSX, CSV file upload lost data (#2150) 2025-02-07 15:13:14 +08:00
wangdan-fit2cloud 808fc7cb58 fix: language 2025-02-07 14:35:32 +08:00
shaohuzhang1 b52b01c7e5
fix: Internationalization global variables cannot be retrieved (#2148) 2025-02-07 14:35:28 +08:00
wxg0103 b4d3939d95 fix: Resolve the error message
--bug=1052045 --user=王孝刚 【应用】-应用中使用的函数被删除后,演示中提示函数库被删除,提示错误 https://www.tapd.cn/57709429/s/1651371
2025-02-07 14:28:04 +08:00
shaohuzhang1 d9e18f13ef
fix: Workflow text to speech node cannot be added (#2147) 2025-02-07 12:14:11 +08:00
shaohuzhang1 5e75b2510d
fix: Fix sub application form unable to recall (#2146) 2025-02-07 11:50:24 +08:00
wxg0103 fbe899e326 fix: rerank error
--bug=1052035 --user=王孝刚 【模型管理】SiliconFlow的重排模型,重排后的内容不正确 https://www.tapd.cn/57709429/s/1651239
2025-02-07 10:18:14 +08:00
wxg0103 8b32944692 fix: OAuth2 error 2025-02-07 10:15:56 +08:00
王丹 7d9afb76b1 fix: optimize 2025-02-07 10:12:36 +08:00
wxg0103 d3a6a6080c fix: ui error 2025-02-07 09:28:03 +08:00
maninhill 84f0d7c314
chore: Update README.md (#2143) 2025-02-06 23:01:19 +08:00
wangdan-fit2cloud c5880b8d13 fix: optimize 2025-02-06 18:18:09 +08:00
wxg0103 20865d53c3 fix: 1050996
--bug=1050996 --user=王孝刚 【函数库】-编辑函数后,函数的创建者显示为空,刷新后恢复 https://www.tapd.cn/57709429/s/1651111
2025-02-06 16:50:40 +08:00
wxg0103 5453aa7380 fix: 1052009
--bug=1052009 --user=王孝刚 [国际化]修改密码的验证码通知邮件未国际化 https://www.tapd.cn/57709429/s/1651094
2025-02-06 16:22:45 +08:00
wxg0103 1db5696bc1 fix: 1052009
--bug=1052009 --user=王孝刚 [国际化]修改密码的验证码通知邮件未国际化 https://www.tapd.cn/57709429/s/1651094
2025-02-06 16:22:45 +08:00
wangdan-fit2cloud fec705fe67 fix: typos 2025-02-06 16:14:42 +08:00
wangdan-fit2cloud 9d842f40cb fix: reset password 2025-02-06 16:11:19 +08:00
wangdan-fit2cloud cad2e3c8c5 fix: reset-password 2025-02-06 15:33:17 +08:00
wangdan-fit2cloud 1010de5cfb fix: optimize language 2025-02-06 15:15:23 +08:00
wxg0103 4ddc491224 fix: type error 2025-02-06 12:18:03 +08:00
wxg0103 1234096678 feat: support siliconCloud rerank 2025-02-06 11:54:01 +08:00
wangdan-fit2cloud 8957b77d55 fix: bugs 2025-02-06 11:19:16 +08:00
wangdan-fit2cloud 4c515318af fix: optimize 2025-02-06 11:01:33 +08:00
maninhill 603a1a5314
chore: Update README.md (#2133)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-02-05 19:15:21 +08:00
maninhill 80a63c18c1
chore: Update README.md (#2132) 2025-02-05 18:57:42 +08:00
wangdan-fit2cloud 4da513a1ca feat: login view add language setting 2025-02-05 18:56:02 +08:00
maninhill 37d65b4125
chore: Update README.md (#2130) 2025-02-05 18:51:17 +08:00
wxg0103 1a4c1b26ea fix: stt node error 2025-02-05 17:58:47 +08:00
wxg0103 8be91b128f feat: siliconCloud logo 2025-02-05 16:52:24 +08:00
wxg0103 a2cb4fc0ee fix: bug
--bug=1051986 --user=王孝刚 【登录】登录页面选择 OAuth2 方式,没有反应 https://www.tapd.cn/57709429/s/1650890
2025-02-05 15:36:33 +08:00
wangdan-fit2cloud 194cce2914 fix: optimize i18n 2025-02-05 15:35:43 +08:00
wxg0103 a8d8c188eb feat: support siliconCloud
--story=1017720 --user=王孝刚 【模型管理】-支持SiliconCloud供应商的大语言模型、向量模型 https://www.tapd.cn/57709429/s/1650888
2025-02-05 15:26:40 +08:00
maninhill c5c9ab32bf
chore: Update README.md (#2124) 2025-02-05 09:35:20 +08:00
wangdan-fit2cloud 7285912356 fix: optimize 2025-01-26 17:28:57 +08:00
wangdan-fit2cloud 03d19afe37 perf: optimize tip 2025-01-26 15:38:42 +08:00
wangdan-fit2cloud 04c153277b perf: optimize text 2025-01-26 12:08:22 +08:00
CaptainB 48dce6c37b fix: i18n azure llm mode
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-01-24 15:55:10 +08:00
wangdan-fit2cloud b97ffa927a fix: i18n 2025-01-24 11:46:08 +08:00
wangdan-fit2cloud 70cd619b6c fix: i18n 2025-01-24 11:44:06 +08:00
wangdan-fit2cloud 99f77e8637 fix: i18n 2025-01-24 11:42:27 +08:00
wxg0103 bbb570fee6 fix: i18n 2025-01-24 11:24:40 +08:00
wxg0103 66741fab51 fix: document table file name 2025-01-24 10:38:39 +08:00
wxg0103 f3b0bea93f fix: csv file 2025-01-24 10:28:51 +08:00
CaptainB 6dca9b41a0 refactor: override document extract node save_content
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-23 19:18:41 +08:00
wangdan-fit2cloud aa184aab94 fix: copyright 2025-01-23 18:16:39 +08:00
wxg0103 a58d1a708d fix: model params 2025-01-23 17:54:19 +08:00
wxg0103 6f6e823117 fix: model params 2025-01-23 17:47:36 +08:00
wangdan-fit2cloud cabd6fb7f5 fix: time language 2025-01-23 17:38:03 +08:00
shaohuzhang1 663a6cad43
fix: Failed to save the Qianfan large model (#2092) 2025-01-23 17:12:58 +08:00
shaohuzhang1 2ca4502303
fix: Workflow execution logic error (#2091) 2025-01-23 17:06:58 +08:00
wxg0103 3801d482cd fix: 1051957
--bug=1051957 --user=王孝刚 【知识库】在预览时修改添加标题,勾选导入时添加分段标题为关联问题,问题未和分段关联 https://www.tapd.cn/57709429/s/1650244
2025-01-23 16:32:05 +08:00
CaptainB 2732323c6d fix: Fix autoplay when tts disabled
--bug=1051950 --user=刘瑞斌 【应用】不关闭自动朗读,直接关闭语言合成模型,还是会自动朗读 https://www.tapd.cn/57709429/s/1650240
2025-01-23 16:31:45 +08:00
wangdan-fit2cloud 28f06222de fix: i18n 2025-01-23 15:28:38 +08:00
wangdan-fit2cloud bbf96aa41c fix: i18n 2025-01-23 15:28:38 +08:00
shaohuzhang1 62dd0eb628
fix: The output of the workflow sub node is not wrapped (#2088) 2025-01-23 15:15:32 +08:00
wangdan-fit2cloud 83c5404826 fix: i18n bugs 2025-01-23 15:07:35 +08:00
wxg0103 1e479270d7 fix: i18n 2025-01-23 15:06:19 +08:00
shaohuzhang1 2c4d1fa3db
fix: application workflow node params (#2087) 2025-01-23 13:55:50 +08:00
wangdan-fit2cloud 45fe93d2b2 fix: i18n 2025-01-23 12:10:14 +08:00
shaohuzhang1 37ebe3e68f
fix: application i18n (#2086) 2025-01-23 11:54:34 +08:00
maninhill 78e3c14019
chore: Update README.md (#2085) 2025-01-23 11:49:40 +08:00
CaptainB f2b7c9229b chore: exclude icon typo check 2025-01-23 11:11:42 +08:00
wxg0103 4610be9745 fix: Download template error
--bug=1051908 --user=王孝刚 【知识库】导出的文档打开后里面为错误日志,无文档内容,导出的压缩包不能解压 https://www.tapd.cn/57709429/s/1650087
2025-01-23 11:07:43 +08:00
shaohuzhang1 5ebcad7cde
fix: The knowledge base vector model can still be vectorized even after unauthorized use (#2080) 2025-01-23 10:53:12 +08:00
CaptainB 40cfa33556 chore: fix typo.
--bug=1051931 --user=刘瑞斌 【知识库】上传文档-表格不能上传zip格式文件了 https://www.tapd.cn/57709429/s/1650083
2025-01-23 10:52:49 +08:00
刘瑞斌 b3ba4e482e
Rename README_EN.md to README.md 2025-01-23 10:27:20 +08:00
刘瑞斌 787462a124
Rename README.md to README_CN.md 2025-01-23 10:27:01 +08:00
wxg0103 73ed74b714 fix: i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-22 19:05:52 +08:00
wxg0103 39e7119d9a fix: login i18n bug
--bug=1051922 --user=王孝刚 【国际化】扫码登录没有国际化 https://www.tapd.cn/57709429/s/1649970
2025-01-22 18:55:39 +08:00
shaohuzhang1 bb77448231
fix: Knowledge base export error (#2076) 2025-01-22 18:27:58 +08:00
shaohuzhang1 5772b02280
fix: Application opening statement character limit (#2075) 2025-01-22 17:56:59 +08:00
wangdan-fit2cloud 0711ed5f60 fix: style 2025-01-22 17:56:10 +08:00
wangdan-fit2cloud f29c702700 feat: add markdown language 2025-01-22 17:49:48 +08:00
shaohuzhang1 34b626d425
fix: The simple application of stream=false Q&A will also directly return segmented content when the similarity is not enough (#2073) 2025-01-22 17:36:03 +08:00
shaohuzhang1 21d505a8d0
fix: bai_lian rerank default model (#2072) 2025-01-22 17:23:52 +08:00
wxg0103 fb7cab4b51 fix: i18n bug 2025-01-22 17:13:29 +08:00
shaohuzhang1 ef75386f3f
fix: Embedded AI conversation cannot open the tool box (#2070) 2025-01-22 17:06:28 +08:00
wangdan-fit2cloud 84475b32f9 fix: i18n bugs 2025-01-22 16:46:20 +08:00
shaohuzhang1 cd3d645ece
fix: Workflow global variables (#2069) 2025-01-22 16:46:11 +08:00
shaohuzhang1 13571ef615
fix: Internationalization of Models (#2068) 2025-01-22 16:12:14 +08:00
wangdan-fit2cloud f924827c7c fix: i18n bugs 2025-01-22 15:06:38 +08:00
shaohuzhang1 3c859a6b7b
fix: New workflow application, node name not internationalized (#2066) 2025-01-22 14:54:57 +08:00
wxg0103 b189b8d4dd refactor: API URL
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-22 14:35:58 +08:00
CaptainB 9e50c8824c style: TooltipLabel max-width 200px
--bug=1051041 --user=刘瑞斌 【应用】高级编排-图片生成-参数设置:文字提示样式不对 https://www.tapd.cn/57709429/s/1649373
2025-01-22 12:11:33 +08:00
CaptainB e9eb7a847e fix: When there is only a voice file in the answer, an error is reported when reading it aloud.
--bug=1051784 --user=刘瑞斌 【应用编排】回答中只有语音文件的时候,朗读报错 https://www.tapd.cn/57709429/s/1649307
2025-01-22 11:43:41 +08:00
wxg0103 05d06fae11 feat: i18n 2025-01-22 11:31:07 +08:00
wangdan-fit2cloud 6009d929cf fix: i18n bugs 2025-01-22 11:26:12 +08:00
CaptainB 495ac39498 fix: Fix autosend and autoplay not working
--bug=1051779 --user=刘瑞斌 【应用】应用演示页面,不能自动播放回答内容 https://www.tapd.cn/57709429/s/1649281
2025-01-22 11:00:27 +08:00
shaohuzhang1 9bd5a221c8
fix: After selecting the answer content in the AI conversation and clicking copy, it cannot be copied (#2062) 2025-01-22 09:57:16 +08:00
wangdan-fit2cloud a9cc34103a feat: about i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-21 20:27:10 +08:00
wangdan-fit2cloud 2972353fcf fix: i18n 2025-01-21 20:10:54 +08:00
wangdan-fit2cloud a9797ca2c7 perf: upload file count(#2029) 2025-01-21 20:06:30 +08:00
wangdan-fit2cloud 47bcb7f2e5 feat: i18n 2025-01-21 19:24:56 +08:00
wangdan-fit2cloud 4dc2036530 feat: i18n 2025-01-21 18:02:27 +08:00
wangdan-fit2cloud 7779dbe1b0 fix: i18n 2025-01-21 17:57:38 +08:00
shaohuzhang1 5009a28853
fix: tti model (#2060) 2025-01-21 17:50:01 +08:00
wxg0103 7ac65aa342 feat: i18n 2025-01-21 17:38:02 +08:00
shaohuzhang1 70b5353d6f
feat: django version (#2059) 2025-01-21 17:09:02 +08:00
shaohuzhang1 d1f7a82661
fix: Volcano engine large speech model cannot be added (#2058) 2025-01-21 17:04:40 +08:00
wxg0103 6b9dd1ce96 feat: i18n 2025-01-21 16:54:57 +08:00
CaptainB 8fc326e011 fix: show/hide autoplay and autosend checkbox
--bug=1051707 --user=刘瑞斌 【应用】-未开启语音输入和语音播放时,不显示自动发送和自动播放 https://www.tapd.cn/57709429/s/1648662
2025-01-21 16:32:50 +08:00
wxg0103 dedc8c00ce feat: i18n 2025-01-21 16:18:05 +08:00
wxg0103 557c077feb feat: i18n 2025-01-21 15:59:14 +08:00
wangdan-fit2cloud f44f910c80 feat: i18n 2025-01-21 15:55:23 +08:00
shaohuzhang1 d9c6b6bdb6
fix: model i18n error (#2055) 2025-01-21 15:52:59 +08:00
wangdan-fit2cloud 1389c581b7 feat: i18n 2025-01-21 15:25:36 +08:00
CaptainB 27a8faccd1 fix: Fix new chat cannot load document_list
--bug=1051402 --user=刘瑞斌 【github#2008】【应用编排】应用演示页面新建对话后再次上传文档,无法读取文档内容 https://www.tapd.cn/57709429/s/1648617
2025-01-21 15:06:02 +08:00
wangdan-fit2cloud cc7990f780 fix: i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-21 11:51:41 +08:00
shaohuzhang1 4bb3a53e9a
build: compilemessages i18n (#2050) 2025-01-21 11:30:10 +08:00
shaohuzhang1 f3045933df
build: install gettext (#2049) 2025-01-21 10:36:07 +08:00
shaohuzhang1 e789825852
feat: compilemessages i18n (#2048) 2025-01-21 10:22:28 +08:00
wxg0103 ac13c6a6f2 feat: i18n 2025-01-21 09:34:32 +08:00
wangdan-fit2cloud b1cd9578fc Merge branch 'pr@main@i18n'
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-20 21:48:05 +08:00
wangdan-fit2cloud 5874c8a9b2 feat: i18n 2025-01-20 21:45:24 +08:00
shaohuzhang1 0b4ae7c7a1 feat: element i18n 2025-01-20 21:26:51 +08:00
wangdan-fit2cloud 059ffc1b01 feat: i18n 2025-01-20 20:50:44 +08:00
shaohuzhang1 9e5352b8d7 fix: event 2025-01-20 20:43:49 +08:00
wangdan-fit2cloud b758c9ef91 fix: i18n 2025-01-20 20:20:44 +08:00
wangdan-fit2cloud b3d937e695 feat: i18n 2025-01-20 19:39:46 +08:00
wxg0103 29ddee8d06 feat: i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-20 19:00:58 +08:00
wangdan-fit2cloud fd7383c519 feat: i18n 2025-01-20 18:02:04 +08:00
wangdan-fit2cloud c4de677c86 feat: i18n 2025-01-20 18:01:01 +08:00
wxg0103 7ea082427b fix: 1050995
--bug=1050995 --user=王孝刚 【函数库】-创建函数,Python 代码为空时提示语和界面显示标题的不符 https://www.tapd.cn/57709429/s/1647978
2025-01-20 16:28:21 +08:00
CaptainB 86330c443e feat: Support vllm embedding model 2025-01-20 16:24:56 +08:00
CaptainB 2301190c4d feat: Support vllm image model 2025-01-20 16:24:56 +08:00
wangdan-fit2cloud 82f2d7e23f fix: i18n 2025-01-20 15:42:28 +08:00
wangdan-fit2cloud 8ea896b261 feat: i18n 2025-01-20 15:08:30 +08:00
wangdan-fit2cloud 7f09609ca0 fix: install vue-demi 2025-01-20 15:08:30 +08:00
shaohuzhang1 defe853728
fix: The project cannot be started (#2040) 2025-01-20 15:03:16 +08:00
shaohuzhang1 e350a221c9
feat: i18n (#2039) 2025-01-20 14:41:26 +08:00
wangdan-fit2cloud 9267002baa feat: i18n 2025-01-20 14:32:43 +08:00
wangdan-fit2cloud eca33e463a feat: i18n 2025-01-20 14:21:30 +08:00
wangdan-fit2cloud 765c24dd3f feat: i18n 2025-01-20 11:31:19 +08:00
wxg0103 d8995e996d feat: support i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-20 11:28:53 +08:00
王丹 96f467fa21 feat: i18n 2025-01-20 11:03:26 +08:00
CaptainB 0e7f466723 fix: text to speech doc show request body
【【github#2032 】【swagger 文档】/api/application/application_id/text to_speech 接口缺少文件上传的入口参数】
https://www.tapd.cn/57709429/bugtrace/bugs/view/1157709429001051530
2025-01-20 10:46:42 +08:00
王丹 ff3f51179b feat: i18n
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-01-18 17:15:31 +08:00
王丹 5c4d61c45c feat: i18n
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-01-16 22:55:42 +08:00
王丹 8fcf935201 feat: i18n 2025-01-16 18:04:58 +08:00
wangdan-fit2cloud 7eb17bab2f feat: i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-15 19:10:37 +08:00
wxg0103 ef26e59388 feat: support i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-15 15:09:57 +08:00
shaohuzhang1 e159cc4a10
feat: xpack i18n (#2034) 2025-01-15 11:38:08 +08:00
shaohuzhang1 d32e6d0e19
feat: xpack i18n (#2033) 2025-01-15 11:10:19 +08:00
wangdan-fit2cloud 04a255af23 feat: i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-14 19:28:38 +08:00
shaohuzhang1 3dcc31b3b9
perf: Optimize the rendering logic of front-end nodes (#2030) 2025-01-14 18:35:54 +08:00
wxg0103 77173de5c0 fix: 1051456
--bug=1051456 --user=王孝刚 【应用编排】当前应用关闭文件上传开关后,引用的应用编排节点,选择文档变量没有清空 https://www.tapd.cn/57709429/s/1646694
2025-01-14 17:26:34 +08:00
wxg0103 255b4fdde4 feat: i18n 2025-01-14 16:54:38 +08:00
shaohuzhang1 90f4d59ec5
feat: Generate i18n file (#2022)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-14 10:37:00 +08:00
wxg0103 6c18ae1ebe feat: i18n 2025-01-14 10:28:50 +08:00
wxg0103 c5585da57d feat: i18n 2025-01-14 09:46:21 +08:00
shaohuzhang1 bedbeac9f7
feat: application i18n (#2020)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-13 19:05:08 +08:00
wangdan-fit2cloud 5cddada3be feat: i18n 2025-01-13 18:54:45 +08:00
wangdan-fit2cloud 8e1a0e678c feat: i18n 2025-01-13 18:54:45 +08:00
wangdan-fit2cloud 3177ab6404 feat: i18n 2025-01-13 18:54:45 +08:00
wxg0103 29688774c6 feat: dataset support i18n 2025-01-13 18:11:20 +08:00
wxg0103 c8dfe0fab0 feat: system support i18n
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-13 14:25:02 +08:00
shaohuzhang1 2f017082d2
fix: Typos (#2014) 2025-01-13 11:39:16 +08:00
shaohuzhang1 426efc789c
feat: email i18n (#2013) 2025-01-13 11:30:52 +08:00
shaohuzhang1 a28de6feaf
feat: i18n (#2011) 2025-01-13 11:15:51 +08:00
CaptainB 41c7ed90c1 feat: Support Anthropic 2025-01-13 10:11:48 +08:00
wxg0103 9c8d7fc269 fix: When deleting conversation logs, they should be deleted by conversation record, not by session.
--bug=1051378 --user=王孝刚 【应用】对话日志删除时应该按对话记录删除,不能按会话删除 https://www.tapd.cn/57709429/s/1645443
2025-01-13 10:06:40 +08:00
CaptainB 6e281f6242 refactor: support volcanic engine embeddings
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-01-10 10:53:36 +08:00
shaohuzhang1 de85895ad6
feat: AI dialog box, left mouse button menu (#2005)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-09 17:59:44 +08:00
wxg0103 2a63cd6bea fix: error
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2025-01-08 17:46:34 +08:00
shaohuzhang1 3e327d52d6
perf: Optimize workflow logic (#1996) 2025-01-08 16:05:27 +08:00
wxg0103 b07641cf66 fix: Front-end error 2025-01-08 16:02:50 +08:00
CaptainB c46b7ab094 refactor: image model get_num_tokens override 2025-01-08 12:09:58 +08:00
wxg0103 bf279898b9 fix: fix github#1988
--bug=1051321 --user=王孝刚 【github#1988】【应用】应用编排接入带用户输入参数的应用,选择后,再次进入应用,选择的参数消失了 https://www.tapd.cn/57709429/s/1643562
--bug=1051323 --user=王孝刚 【应用】创建应用报错 https://www.tapd.cn/57709429/s/1643571
2025-01-08 11:40:58 +08:00
shaohuzhang1 8db35c45c1
fix: Document upload prompt: missing status list field (#1991)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-07 18:21:13 +08:00
shaohuzhang1 923c75512b
build: Specify the poetry version (#1989)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-07 14:24:09 +08:00
shaohuzhang1 d744fb4106
fix: Guide package (#1986) 2025-01-07 11:31:06 +08:00
shaohuzhang1 4bddd1aab1
fix: tencent and xf embedding model set default model (#1985) 2025-01-07 11:22:54 +08:00
shaohuzhang1 54381ffaf3
feat: Document vectorization supports processing based on status (#1984) 2025-01-07 11:15:10 +08:00
CaptainB 9a310bfb98 fix: bailian tti and image model set default model
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1051223 --user=刘瑞斌 【模型管理】阿里云百炼自定义添加图片生成模型报错 https://www.tapd.cn/57709429/s/1642319

--bug=1051218 --user=刘瑞斌 【模型管理】阿里云百炼自定义添加图片理解模型报错 https://www.tapd.cn/57709429/s/1642323
2025-01-06 18:29:52 +08:00
CaptainB 56b243c0ce fix: openai tti, tts, stt and image model set default model
--bug=1051227 --user=刘瑞斌 【模型管理】OpenAI添加自定义模型报错问题汇总 https://www.tapd.cn/57709429/s/1642314
2025-01-06 18:29:52 +08:00
CaptainB b7bcca6562 fix: qwen tti and image model set default model
--bug=1051228 --user=刘瑞斌 【模型管理】通义千问添加自定义模型报错问题汇总 https://www.tapd.cn/57709429/s/1642313
2025-01-06 18:29:52 +08:00
CaptainB 3f063ae791 fix: tencent tti and image model set default model
--bug=1051229 --user=刘瑞斌 【模型管理】腾讯混元添加自定义模型报错问题汇总 https://www.tapd.cn/57709429/s/1642310
2025-01-06 18:29:52 +08:00
CaptainB ff7f9f7876 fix: volcanic tts and stt model set default model
--bug=1051231 --user=刘瑞斌 【模型管理】火山引擎添加自定义模型报错问题汇总 https://www.tapd.cn/57709429/s/1642307
2025-01-06 18:29:52 +08:00
CaptainB ee6afffc6a fix: xunfei tts and stt model set default model
--bug=1051233 --user=刘瑞斌 【模型管理】讯飞星火添加自定义模型报错问题汇总 https://www.tapd.cn/57709429/s/1642301
2025-01-06 18:29:52 +08:00
CaptainB e175864699 fix: zhipu tti and image model set default model
--bug=1051236 --user=刘瑞斌 【模型管理】智谱AI添加自定义模型报错问题汇总 https://www.tapd.cn/57709429/s/1642279
2025-01-06 18:29:52 +08:00
CaptainB 9b57655255 fix: xinference tti and image model set default model
--bug=1051237 --user=刘瑞斌 【模型管理】Xorbits Inference添加自定义模型报错问题汇总 https://www.tapd.cn/57709429/s/1642278
2025-01-06 18:29:52 +08:00
CaptainB 6b23fcd11c feat: Support autoplay audio tag
--story=1017623 --user=刘瑞斌 【应用】-语音播放时遇到音频文件直接播放文件内容 https://www.tapd.cn/57709429/s/1642154
2025-01-06 17:38:36 +08:00
shaohuzhang1 d9df013e33
fix: Part of the docx document is parsed incorrectly (#1981)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-06 14:37:51 +08:00
shaohuzhang1 00591a5b25
fix: Workflow The condition setting 'any' did not take effect when the discriminator was executed (#1979) 2025-01-06 14:04:25 +08:00
CaptainB c307f6b0af feat: Support stt mode auto send message
--story=1017616 --user=刘瑞斌 【应用】语音输入支持自动发送 https://www.tapd.cn/57709429/s/1641715
2025-01-06 11:31:25 +08:00
CaptainB 301c60ee92 fix: Unable to enter custom model name
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
--bug=1051178 --user=刘瑞斌 【模型】添加Ollama的图片理解模型,自定义输入基础模型报错 https://www.tapd.cn/57709429/s/1641511
2025-01-03 21:06:50 +08:00
wangdan-fit2cloud d1b1aaa5e0 perf: locales 2025-01-03 17:43:08 +08:00
wangdan-fit2cloud 6c44622e95 feat: support autoplay answer for tts model 2025-01-03 16:44:32 +08:00
CaptainB b2879da541 feat: support autoplay answer for tts model 2025-01-03 16:44:32 +08:00
CatpainB f9b1f2d927 fix: support zhipu cogview-3-flash model
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1051161 --user=刘瑞斌 【模型】添加智普免费的图片生成模型(Cogview-3-Flash)报错 https://www.tapd.cn/57709429/s/1641187
2025-01-03 13:45:57 +08:00
wangdan-fit2cloud 892878396d fix: tip image 404
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-02 18:13:54 +08:00
wangdan-fit2cloud 4db8c9c397 perf: application overview update Text 2025-01-02 16:39:16 +08:00
wangdan-fit2cloud b6c676f4dc perf: KnowledgeSource filename too long 2025-01-02 14:24:48 +08:00
wangdan-fit2cloud d4c605f671 fix: paragraph-card style
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2025-01-02 11:30:00 +08:00
shaohuzhang1 9d96ed347f
fix: Generate a problem with continuous clicking without response (#1958)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-12-31 17:19:44 +08:00
wangdan-fit2cloud e0882de139 fix: generate related debounce 2024-12-31 17:15:57 +08:00
shaohuzhang1 efa5c191e0
fix: The switch node does not display default values (#1957) 2024-12-31 16:45:10 +08:00
wangdan-fit2cloud 154cc7290f perf: Optimize duplicate files and style 2024-12-31 15:23:05 +08:00
wangdan-fit2cloud c785dfa47b fix: Optimize style 2024-12-31 14:24:28 +08:00
wangdan-fit2cloud d8b3fd74b0 fix: complex search style
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-31 11:07:31 +08:00
CaptainB 06f591d404 fix: show error message for tts model params not correct
--bug=1051057 --user=刘瑞斌 【模型管理】语音合成模型有错误的参数,播放回答内容时没有反应 https://www.tapd.cn/57709429/s/1639429
2024-12-31 11:03:59 +08:00
shaohuzhang1 4ae21bcf1f
fix: Embedded application displays incomplete data (#1954) 2024-12-31 11:00:05 +08:00
wangdan-fit2cloud 95d36656b7 fix: workflow name too long style 2024-12-31 10:52:28 +08:00
CaptainB a4f8d59e28 fix: edit some tooltips
--bug=1051041 --user=刘瑞斌 【应用】高级编排-图片生成-参数设置:文字提示样式不对 https://www.tapd.cn/57709429/s/1639393
2024-12-31 10:29:28 +08:00
wxg0103 7055cbcbda fix: tts node and stt node add warning
--bug=1050722 --user=王孝刚 【应用编排】前置节点删掉后,调试和发布的时候引用前置节点的变量要有提示 https://www.tapd.cn/57709429/s/1639310
2024-12-31 09:38:25 +08:00
maninhill b51d55805e
chore: Update README.md (#1952)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-30 21:19:18 +08:00
wangdan-fit2cloud edb842679d perf: style
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-30 18:57:40 +08:00
shaohuzhang1 0f8fb1693a
fix: Replace synchronization error (#1951) 2024-12-30 18:13:32 +08:00
CaptainB 7f9a11dbb8 fix: azure llm model not show some recommends
--bug=1051028 --user=刘瑞斌 【模型管理】添加Azure OpenAI的大语言模型,基础模型的默认下拉列表模型信息错误 https://www.tapd.cn/57709429/s/1639196
2024-12-30 17:44:48 +08:00
shaohuzhang1 1e56d7877f
fix: Form default value display error (#1950) 2024-12-30 17:41:13 +08:00
wangdan-fit2cloud da251a5f7c perf: workflow select style 2024-12-30 16:48:42 +08:00
wangdan-fit2cloud 046aa2aed0 fix: dynamics form default value style 2024-12-30 16:38:34 +08:00
CaptainB 62fe32195f fix: fix hunyuan-functioncall edit faild
--bug=1051010 --user=刘瑞斌 【模型设置】修改腾讯混元的大语言模型为 hunyuan-functioncall 模型失败,提示模型不存在 https://www.tapd.cn/57709429/s/1639072
2024-12-30 16:11:55 +08:00
CaptainB 1cf59cd49f fix: tts mode dont show default value 2024-12-30 15:42:55 +08:00
shaohuzhang1 5faa28ec4a
fix: Error in obtaining variables for character settings (#1948) 2024-12-30 15:26:43 +08:00
shaohuzhang1 ad9c837d43
fix: The dropdown menu of workflow basic components cannot be scrolled (#1946) 2024-12-30 14:22:31 +08:00
shaohuzhang1 cb6e4b7295
fix: Export application error prompt repeated (#1945) 2024-12-30 13:58:40 +08:00
shaohuzhang1 4bff2b4f38
fix: Model editing prohibits modifying model types (#1944) 2024-12-30 13:43:04 +08:00
shaohuzhang1 694b3cd9c2
fix: The form must be filled out to trigger verification, and the verification prompt is not eliminated after assignment (#1943)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-30 12:08:28 +08:00
wangdan-fit2cloud dad08b9cd7 fix: Unified disabled color 2024-12-30 11:41:20 +08:00
shaohuzhang1 ce5bbc1ff7
feat: Embed icon color to follow font changes (#1941) 2024-12-30 11:25:55 +08:00
wxg0103 c13427a0b1 refactor: tts node add warning 2024-12-30 11:24:32 +08:00
wangdan-fit2cloud c5b56dec38 fix: application button question 2024-12-30 11:17:12 +08:00
baixin dc424b3720
Update README.md (#1940) 2024-12-30 11:05:12 +08:00
刘瑞斌 1067cc5157
chore: update readme 2024-12-30 11:03:36 +08:00
shaohuzhang1 eb76450cdc
fix: Exporting zip cannot open the file (#1939) 2024-12-30 10:51:08 +08:00
shaohuzhang1 7f0547a8b8
fix: The functions in the library cannot be modified after being defined (#1938) 2024-12-30 10:36:11 +08:00
shaohuzhang1 3ea41c3297
fix: Application access restrictions are not separately counted for each application (#1937) 2024-12-30 10:24:36 +08:00
wxg0103 ef64c9dd08 fix: aws credentials_profile_name 2024-12-30 09:15:43 +08:00
CaptainB 4c5e39fe6b fix: tts mode show default_value not working correctly
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
--bug=1050963 --user=刘瑞斌 【模型管理】语音输出模型,参数没勾选显示默认值,但是在应用中显示了默认值 https://www.tapd.cn/57709429/s/1638375
2024-12-27 21:23:20 +08:00
wxg0103 cc3813e97e fix: refactoring embedded application logic 2024-12-27 18:47:00 +08:00
wangdan-fit2cloud de97de64b2 fix: workflow name cannot repeat and optimize chat quick question 2024-12-27 18:31:36 +08:00
CaptainB c92c8f9a1a fix: image understand select file add required icon 2024-12-27 17:53:16 +08:00
shaohuzhang1 32b9e9c068
fix: Multiple imports of the same file without response (#1933)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-27 17:28:27 +08:00
CaptainB 2fd1464ccb fix: required default false
--bug=1050885 --user=刘瑞斌 【应用编排】添加用户输入参数,直接触发默认值必填校验 https://www.tapd.cn/57709429/s/1638132
2024-12-27 16:45:54 +08:00
shaohuzhang1 d39d4804a3
fix: When dragging and adding a workflow function node, it prompts that the ID does not exist (#1932)
* fix: The application cannot be embedded

* fix: When dragging and adding a workflow function node, it prompts that the ID does not exist
2024-12-27 14:41:14 +08:00
wangdan-fit2cloud 116ceefd0a fix: python dialog fullscreen 2024-12-27 14:14:45 +08:00
shaohuzhang1 17616205b9
fix: The application cannot be embedded (#1931) 2024-12-27 11:55:03 +08:00
shaohuzhang1 c6f821ce53
fix: Easy application import (#1930) 2024-12-27 11:46:02 +08:00
CaptainB 75a7630be8 fix: check auth when add xinference tti tts model 2024-12-27 11:35:50 +08:00
shaohuzhang1 415b2e1967
fix: Import application and add file format verification (#1928) 2024-12-27 11:13:44 +08:00
shaohuzhang1 441fb1a0b7
feat: Add default value for DB_MAX_OVERFLOW (#1927) 2024-12-27 11:08:35 +08:00
shaohuzhang1 e379b8c7e1
fix: Dialogue node context type is not required (#1926) 2024-12-27 10:52:05 +08:00
shaohuzhang1 5299f1262f
feat: AI dialogue roles support obtaining data from other nodes (#1925) 2024-12-27 10:46:07 +08:00
CaptainB 5942f847a1 fix: close create model dialog cancel loading
--bug=1050889 --user=刘瑞斌 【模型管理】上一个模型的添加中状态会影响后面添加的模型 https://www.tapd.cn/57709429/s/1637704
2024-12-27 10:42:05 +08:00
shaohuzhang1 f111ae1200
feat: The form node supports obtaining data from other nodes (#1924) 2024-12-27 10:39:27 +08:00
shaohuzhang1 74edbd0a4e
feat: The workflow node cannot obtain values from other nodes, which is set as the default value (#1923) 2024-12-27 10:36:39 +08:00
CaptainB 2529011df9 fix: negative_prompt is not working
--bug=1050785 --user=刘瑞斌 【应用编排】-图片生成组件放大负向提示词编辑框输入内容后,在正向提示词框中生效了 https://www.tapd.cn/57709429/s/1637689
2024-12-27 10:29:52 +08:00
liqiang-fit2cloud 549df741fa perf: add POSTGRES_MAX_CONNECTIONS env. 2024-12-27 10:25:07 +08:00
liqiang-fit2cloud 4f4b64f2b1 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-27 09:57:20 +08:00
liqiang-fit2cloud 24bac65f03 perf: add POSTGRES_MAX_CONNECTIONS env. 2024-12-27 09:57:09 +08:00
liqiang-fit2cloud a0b03d3433 perf: add POSTGRES_MAX_CONNECTIONS env. 2024-12-27 09:55:09 +08:00
liqiang-fit2cloud 68897b9ebf Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-26 18:38:28 +08:00
liqiang-fit2cloud 0459eedd1a perf: increase MAX_OVERFLOW of database connection pool.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-26 18:36:57 +08:00
wangdan-fit2cloud 2033a3457f fix: Optimize style 2024-12-26 18:35:11 +08:00
liqiang-fit2cloud 982be95435 perf: increase MAX_OVERFLOW of database connection pool. 2024-12-26 18:34:07 +08:00
liqiang-fit2cloud 0ba733eeee Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-26 18:32:53 +08:00
wxg0103 506187e3c2 fix: tts node add a prompt with empty text
--bug=1050887 --user=王孝刚 【应用编排】知识库检索节点为空,走到文本转语音节点会报错 https://www.tapd.cn/57709429/s/1637596
2024-12-26 18:25:04 +08:00
liqiang-fit2cloud b4834b1228 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-26 18:23:10 +08:00
liqiang-fit2cloud 44116c5e52 build: remove pyc compilation. 2024-12-26 18:22:52 +08:00
liqiang-fit2cloud 1d04b0bde0 build: remove pyc compilation. 2024-12-26 18:21:10 +08:00
liudonghua f1c7ae9974
update: ollama model name #1902 2024-12-26 17:32:18 +08:00
shaohuzhang1 d9dcd33425
fix: Workflow execution conditions did not execute as expected (#1915) 2024-12-26 17:31:30 +08:00
CaptainB d42442052b fix: model_type change reset model_param_form
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-26 16:33:26 +08:00
CaptainB 7df98e2865 fix: reranker embedding stt model show another empty
--bug=1050861 --user=刘瑞斌 【模型管理】添加向量模型、重排模型时,高级设置中文案提示不对 https://www.tapd.cn/57709429/s/1637503
2024-12-26 16:28:07 +08:00
CaptainB 6fab88e891 fix: model params config show empty config
--bug=1050877 --user=刘瑞斌 【模型管理】-添加模型时,在高级设置中删除所有默认参数后,不展示参数添加按钮,无法再次添加参数 https://www.tapd.cn/57709429/s/1637477
2024-12-26 16:22:23 +08:00
CaptainB 91afbcd71a fix: add hunyuan llm error
--bug=1050875 --user=刘瑞斌 【模型管理】-添加腾讯混元大语言模型失败 https://www.tapd.cn/57709429/s/1637470
2024-12-26 16:05:00 +08:00
shaohuzhang1 efa73c827f
refactor: Workflow execution logic (#1913) 2024-12-26 15:29:55 +08:00
wxg0103 bb58ac6f2c fix: Text ignores special characters such as HTML tags
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1050847 --user=王孝刚 【应用】-文本转语音节点在接收到带有html标签或url的文本,生成的语音中没有忽略代码和url等信息 https://www.tapd.cn/57709429/s/1637065
2024-12-25 18:33:52 +08:00
wangdan-fit2cloud a1f950899a perf: advanced template setting style 2024-12-25 18:24:26 +08:00
wangdan-fit2cloud 3bae4c5511 fix: uploaded document error(#1909) 2024-12-25 18:06:44 +08:00
CaptainB 9f012fd43a chore: ollama baseurl v1 suffix 2024-12-25 17:53:46 +08:00
CaptainB 6412825d30 refactor: check model use model_params 2024-12-25 17:05:57 +08:00
wangdan-fit2cloud 628cf705ce fix: modify style
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-25 15:41:29 +08:00
wxg0103 bd8d848321 fix: fix tts node and stt node error
--bug=1050817 --user=王孝刚 【应用编排】文本转语音,字数不是很多但是模型提示超长了 https://www.tapd.cn/57709429/s/1636787
--bug=1050821 --user=王孝刚 【应用编排】语音转文本错误信息是图片缺少file_id https://www.tapd.cn/57709429/s/1636786
2024-12-25 15:15:46 +08:00
CaptainB ae7c446e81 fix: show tips for non exist ollama model
--bug=1050792 --user=刘瑞斌 【模型管理】ollama图片理解模型,选择服务器上不存在的模型时没有自动下载 https://www.tapd.cn/57709429/s/1636732
2024-12-25 14:30:58 +08:00
wxg0103 9e1b7fc3ab fix: model params 2024-12-25 14:13:01 +08:00
shaohuzhang1 f43d700fd8
fix: Invalid parameter saving display (#1906) 2024-12-25 13:40:32 +08:00
CaptainB 2c3132f660 fix: show default value checkbox always on
--bug=1050771 --user=刘瑞斌 【应用编排】模型参数设置不显示默认值后,应用中保存过的模型参数被清空了 https://www.tapd.cn/57709429/s/1636650
2024-12-25 13:23:55 +08:00
wangdan-fit2cloud df633689b6 perf: clear useless code 2024-12-25 11:52:03 +08:00
wangdan-fit2cloud d3d20ac2cd perf: create application modify style 2024-12-25 11:49:43 +08:00
shaohuzhang1 28ceb94417
fix: Batch generation of problems (#1905) 2024-12-25 11:23:59 +08:00
shaohuzhang1 2db86169fa
fix: Empty knowledge base upload error (#1904) 2024-12-25 10:53:43 +08:00
wxg0103 0cae0c865b feat: support aws proxy_url
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-24 18:41:39 +08:00
wangdan-fit2cloud f1cca66012 feat: add chat quick question 2024-12-24 17:23:58 +08:00
shaohuzhang1 af3266b979
fix: Workflow import did not insert AccessToken information (#1900) 2024-12-24 17:14:09 +08:00
shaohuzhang1 89206c9fa6
feat: Batch cancel tasks (#1896) 2024-12-24 17:09:27 +08:00
shaohuzhang1 4550f72b6d
fix: Workflow cannot respond to errors (#1899) 2024-12-24 16:39:51 +08:00
wxg0103 32e5c8195a fix: fix the defect of empty line to speech error
--bug=1050760 --user=王孝刚 【应用】文本转语音使用豆包模型时,用户问题文本中间有空行,会报错 https://www.tapd.cn/57709429/s/1636230
2024-12-24 16:29:46 +08:00
wxg0103 037268179d fix: fix the defect where the exported log field is empty
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1049645 --user=王孝刚 【应用】应用编排嵌入高级编排应用,导出对话日志文件的优化后问题字段没有值 https://www.tapd.cn/57709429/s/1635887
2024-12-24 11:43:26 +08:00
wxg0103 0cd9c8fe00 fix: fix the defect of multiple audio display errors
--bug=1050737 --user=王孝刚 【应用编排】-用两个组件分别生成两段语音,在MK演示中无法播放两段语音 https://www.tapd.cn/57709429/s/1635779
2024-12-24 09:52:09 +08:00
liqiang-fit2cloud 24b77e220b build: compile-pyc 2024-12-24 09:47:01 +08:00
shaohuzhang1 d403640f7f
build: compile-pyc (#1891)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-23 19:39:42 +08:00
CaptainB 5d6fc8adc9 chore: something tooltips.
--bug=1050731 --user=刘瑞斌 【模型管理】Azure OpenAI中模型类型的提示信息中没有添加图片理解和图片生成的说明 https://www.tapd.cn/57709429/s/1635764
2024-12-23 18:35:57 +08:00
wangdan-fit2cloud 91dac247c9 fix: modify related problem tooltip bug(#18853) 2024-12-23 17:40:09 +08:00
CaptainB 4920e8787b fix: Image understanding of non-existent variable prompts
--bug=1050722 --user=刘瑞斌 【应用编排】前置节点删掉后,调试和发布的时候引用前置节点的变量要有提示 https://www.tapd.cn/57709429/s/1635604
2024-12-23 16:18:33 +08:00
CaptainB 418c87093d fix: The image of the image understanding node selects the image generated by the preceding node.
--bug=1050695 --user=刘瑞斌 【应用编排】图片理解节点的图片选择前置节点生成的图片,执行详情中加载失败 https://www.tapd.cn/57709429/s/1635547
2024-12-23 15:17:13 +08:00
CaptainB 42bd7e60a7 fix: The image of the image understanding node selects the image generated by the preceding node.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1050695 --user=刘瑞斌 【应用编排】图片理解节点的图片选择前置节点生成的图片,执行详情中加载失败 https://www.tapd.cn/57709429/s/1635547
2024-12-23 15:00:20 +08:00
CaptainB 25b6acb0db refactor: Supports configuring whether required fields are displayed
--story=1017498 --user=刘瑞斌 【高级编排应用】用户输入参数默认值增加显示设置优化 https://www.tapd.cn/57709429/s/1635457
2024-12-23 15:00:13 +08:00
wxg0103 8666973519 fix: fix bailian stt 2024-12-23 14:04:21 +08:00
wxg0103 53f4e11145 fix: fix bailian stt 2024-12-23 11:25:59 +08:00
shaohuzhang1 1113e1ffec
feat: Node execution conditions (#1888) 2024-12-23 11:11:28 +08:00
wxg0103 f9548dd7f2 fix: fix audio frame rate 2024-12-23 10:30:42 +08:00
shaohuzhang1 a00af1e288
refactor: Workflow execution logic (#1886)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-12-20 20:29:15 +08:00
wangdan-fit2cloud abef79efa6 perf: update workflow icon 2024-12-20 14:29:03 +08:00
wangdan-fit2cloud bfdf7f7498 perf: Add Batch Delete Confirm 2024-12-20 14:29:03 +08:00
CaptainB 6c7ae3f79f chore: fix typo.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-20 12:33:08 +08:00
CaptainB 77aa83d829 fix: Open add model dialog show base-info always
--bug=1050670 --user=刘瑞斌 【系统管理】模型设置-添加模型-默认显示了“高级设置”标签页 https://www.tapd.cn/57709429/s/1635004
2024-12-20 11:35:16 +08:00
wxg0103 b327bd8fed fix: fix workflow parameter verification
--bug=1050548 --user=王孝刚 【应用】-高级编排语音转文本组件的语音文件为空可以发布应用 https://www.tapd.cn/57709429/s/1634944
2024-12-20 11:20:14 +08:00
wxg0103 64fb77132a fix: fix the defect of interface parameter transmission failure
--bug=1050500 --user=王孝刚 【接口文档】接口文档里的获取知识库列表(不分页)接口,带参数查询无数据 https://www.tapd.cn/57709429/s/1634918
2024-12-20 10:24:23 +08:00
CaptainB 2cb2e6d805 feat: Support gemini embedding model
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-19 18:58:08 +08:00
CaptainB f533bb5350 feat: Support gemini embedding model 2024-12-19 18:45:10 +08:00
CaptainB 24bb7d5cfa feat: Support gemini stt model 2024-12-19 18:26:19 +08:00
wangdan-fit2cloud 5ad2a63ba1 fix: Modify text 2024-12-19 18:12:37 +08:00
wangdan-fit2cloud 6169870c5b perf: Change icon 2024-12-19 17:44:56 +08:00
wxg0103 cc078ec353 refactor: optimize the display of SST nodes 2024-12-19 17:35:42 +08:00
wangdan-fit2cloud c000ee4a82 feat: Add workflow condition style 2024-12-19 15:37:48 +08:00
CaptainB c98874e22f feat: Support Azure image tts stt model 2024-12-19 12:38:11 +08:00
wanghe-fit2cloud 82f263bc23 chore: Update the issue and feature request templates
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-19 10:27:24 +08:00
wanghe-fit2cloud 4c1f0f7b0f chore: Add issue-translator.yml
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-18 19:09:01 +08:00
wangdan-fit2cloud 10cb004a5c fix: Modify export icon 2024-12-18 18:26:55 +08:00
shaohuzhang1 bcdc2fd883
fix: Low version browsers do not have the at function (#1870) 2024-12-18 18:26:27 +08:00
shaohuzhang1 832b0dbd63
feat: Knowledge base import supports zip, xls, xlsx, and csv formats, while knowledge base export supports zip format (#1869) 2024-12-18 18:00:19 +08:00
wangdan-fit2cloud 854d74bbe5 fix: modify style bugs 2024-12-18 16:57:32 +08:00
CaptainB 097cabbf5b feat: Support Azure embedding model 2024-12-18 16:41:10 +08:00
CaptainB 003f3d13e0 feat: Support Azure embedding model 2024-12-18 16:31:54 +08:00
wangdan-fit2cloud 88deedad6c perf: add problem filter repeat 2024-12-18 14:27:07 +08:00
CaptainB bdea68c4e6 fix: Support embedding multiple Applications
Closes #1659
2024-12-18 12:26:29 +08:00
wxg0103 b2829963ab fix: remove audio channels
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-18 11:24:31 +08:00
wxg0103 0724fde7da fix: set audio channels 2024-12-18 10:20:03 +08:00
wxg0103 dd6eee6e26 fix: any_to_mp3 2024-12-18 09:46:46 +08:00
wxg0103 b819e6634e refactor: Support uploading multiple audio files
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-17 18:24:10 +08:00
wangdan-fit2cloud 2a88651610 perf: Optimize markdown image style 2024-12-17 17:37:10 +08:00
liqiang-fit2cloud 902f5dd2d5 build: update code review configuration. 2024-12-17 16:37:57 +08:00
liqiang-fit2cloud c6a4a6a8f5 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-17 16:37:21 +08:00
wangdan-fit2cloud d1135dc7bc style: Optimize style 2024-12-17 16:03:08 +08:00
CaptainB 26ba893877 fix: The basic information node repeatedly turns on and off the file upload switch, and the audio variable of the starting node will increase repeatedly.
--bug=1050529 --user=刘瑞斌 【应用】-高级编排应用设置,基础信息节点反复开启关闭文件上传开关,开始节点的音频变量会重复增加 https://www.tapd.cn/57709429/s/1632488
2024-12-17 15:38:52 +08:00
CaptainB b9013d72ad feat: Volcanic Engine Access Key ID and Secret Access Key 2024-12-17 15:22:23 +08:00
wangdan-fit2cloud c58514765d style: update icon 2024-12-17 14:51:57 +08:00
wangdan-fit2cloud 28acc2e48b style: updata audio icon 2024-12-17 14:51:57 +08:00
CaptainB a827396d07 feat: Gemini Image understand model 2024-12-17 13:46:22 +08:00
liqiang-fit2cloud 5b96c78ed9 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-17 11:56:35 +08:00
liqiang-fit2cloud 89d17adc05 security: minimize permission of sandbox user 2024-12-17 11:56:21 +08:00
liqiang-fit2cloud b7cac7defc security: minimize permission of sandbox user 2024-12-17 11:53:52 +08:00
wangdan-fit2cloud a42848d183 fix: embed page create button miss 2024-12-17 11:02:09 +08:00
shaohuzhang1 982a4194d9
build: Ffmpeg Linux address (#1854) 2024-12-17 10:51:10 +08:00
wxg0103 6308bd93c5 refactor: remove ffmpeg-python 2024-12-17 10:42:48 +08:00
shaohuzhang1 9b9a56d9a6
build: Ffmpeg Linux address (#1853) 2024-12-17 10:40:43 +08:00
shaohuzhang1 93b2c6acdd
build: Add ffmpeg Linux dependency (#1848)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-16 19:37:17 +08:00
CaptainB f2373da1b9 feat: Ollama Image understand model 2024-12-16 19:23:24 +08:00
CaptainB a447c8efc8 feat: BaiLian Image Model
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-16 16:49:20 +08:00
CaptainB 33036400d3 feat: BaiLian Image Model 2024-12-16 16:14:14 +08:00
CaptainB c816c95224 refactor: Image generate model disable history mode 2024-12-16 15:43:18 +08:00
CaptainB 6a55750e8d refactor: Image generate model history message show images 2024-12-16 15:08:22 +08:00
shaohuzhang1 64443ee136
feat: Application import and export (#1836) 2024-12-16 14:19:57 +08:00
maninhill 390014fa1b
chore: Update README.md (#1833)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-15 11:28:44 +08:00
wxg0103 5b969ef861 feat: add speech_to_text node and text_to_speech node
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-12-13 15:02:06 +08:00
CaptainB 7bd791f8f5 feat: Xinference Image Model 2024-12-13 14:42:14 +08:00
CaptainB 7de58de42a feat: Volcanic Engine Image Model 2024-12-13 14:42:14 +08:00
CaptainB 4d977fd765 feat: Create model and configure advanced parameters 2024-12-13 14:42:14 +08:00
CaptainB 8b33c99235 feat: Image understanding and image generation models support configuring model parameters 2024-12-13 14:42:14 +08:00
CaptainB add99fabc6 feat: Support image generate model 2024-12-13 14:42:14 +08:00
wangdan-fit2cloud 9e859be5ff perf: Remove Support Button 2024-12-13 11:02:21 +08:00
maninhill 1ea95ec39f
chore: Update README_EN.md (#1823)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-12 10:02:04 +08:00
shaohuzhang1 36f1a3ba64
fix: The document list status filtering is incorrect. (#1822)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-11 20:07:27 +08:00
shaohuzhang1 37c963b4ad
fix: In the dialogue, the form nodes of the sub-application are not displayed as separate cards. (#1821) 2024-12-11 19:51:17 +08:00
wangdan-fit2cloud eaf31fd3e7 fix: 基础组件增加过滤提示 2024-12-11 17:52:02 +08:00
liqiang-fit2cloud cb21678f67 build: try another LLM for code review. 2024-12-11 17:10:11 +08:00
liqiang-fit2cloud 0f65670f99 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-11 16:40:09 +08:00
maninhill ad59522a46
chore: Update README.md (#1817) 2024-12-11 16:38:42 +08:00
maninhill 400e06eaca
chore: Update README.md (#1816) 2024-12-11 16:34:58 +08:00
maninhill 05c18c9096 chore: Update README_EN.md 2024-12-11 16:16:04 +08:00
wangdan-fit2cloud 7a76f73682 fix: 修复嵌入式样式冲突问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-11 14:13:28 +08:00
shaohuzhang1 f9437ca9b8
fix: 修复函数库响应数据在日志中不显示问题 (#1814) 2024-12-11 13:52:23 +08:00
CaptainB daf27a76ab fix: 处理回复中的html标签和内容 2024-12-11 10:34:03 +08:00
wxg0103 2a64f63073 fix: 修复批量导入网页地址swagger上没有填写请求体的地方的缺陷
--bug=1050206 --user=王孝刚 【github#1809】【知识库】web知识库,批量导入网页地址时,抓到的接口有请求体,但是swagger上没有填写请求体的地方。 https://www.tapd.cn/57709429/s/1628286
2024-12-11 09:44:46 +08:00
CaptainB 06a5f6a0de fix: 处理回复中的html标签和内容
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-10 18:45:42 +08:00
CaptainB 2178a81c65 fix: 处理回复中的html标签和内容 2024-12-10 18:33:12 +08:00
shaohuzhang1 ec27e57f2c
fix: 文档导出权限错误 (#1807)
Co-authored-by: wangdan-fit2cloud <dan.wang@fit2cloud.com>
2024-12-10 18:29:29 +08:00
shaohuzhang1 5e42dcad09
fix: 修复工作流对话bug (#1806) 2024-12-10 16:37:57 +08:00
CaptainB fa3817574b fix: 语音播放去掉form_rander相关文本 2024-12-10 16:26:10 +08:00
wangdan-fit2cloud 8d9a14a15f fix: 修复非管理权限下的导出和状态改变 2024-12-10 16:06:16 +08:00
liqiang-fit2cloud ea1650251c Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-10 15:52:48 +08:00
wxg0103 adad526a4f fix: 修复历史记录不显示图片的缺陷
--bug=1050151 --user=王孝刚 【应用】演示界面、全屏嵌入、浮窗嵌入历史记录和对话日志中不显示上传的图片 https://www.tapd.cn/57709429/s/1627628
2024-12-10 15:45:54 +08:00
shaohuzhang1 672cb7dd34
fix: 修复嵌入图片过大指引位置错误 (#1802) 2024-12-10 14:48:08 +08:00
liqiang-fit2cloud 997771744f Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-10 13:26:40 +08:00
wangdan-fit2cloud cacdfbcb62 fix: 优化上传图片对话提示
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-10 11:01:53 +08:00
shaohuzhang1 aa94f66492
fix: 修复文档状态无法过滤 (#1800) 2024-12-10 11:00:44 +08:00
liqiang-fit2cloud 95a420ba82 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-09 18:31:16 +08:00
shaohuzhang1 04f34f796e
fix: 修复前端路由警告 (#1797)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-09 18:05:05 +08:00
shaohuzhang1 dc400b506d
fix: 修复前端路由警告 (#1795) 2024-12-09 17:51:10 +08:00
liqiang-fit2cloud 562f3f43df Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-09 11:26:46 +08:00
shaohuzhang1 f65546a619
feat: 支持工作流ai对话节点添加节点上下文 (#1791)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-09 11:17:58 +08:00
liqiang-fit2cloud 18216401fd Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-09 09:50:32 +08:00
CaptainB 5c64d630a0 feat: 支持上传mp3文件
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-12-06 18:48:58 +08:00
wangdan-fit2cloud 28a2c9897d fix: 优化下拉框字重 2024-12-06 18:23:43 +08:00
CaptainB acebb7b366 feat: 支持智谱图片理解模型
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-06 16:50:14 +08:00
wxg0103 88b565fe6d fix: 企业微信扫码信息配置错误
--bug=1050048 --user=王孝刚 【企业微信-扫码登录】配置信息错误 https://www.tapd.cn/57709429/s/1626175
2024-12-06 14:44:11 +08:00
wxg0103 b87c214cb5 fix: 企业微信扫码信息配置错误
--bug=1050048 --user=王孝刚 【企业微信-扫码登录】配置信息错误 https://www.tapd.cn/57709429/s/1626175
2024-12-06 11:32:23 +08:00
shaohuzhang1 40a1070b81
build: 修复环境变量 (#1780) 2024-12-06 11:14:48 +08:00
liqiang-fit2cloud 89e7581517 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-06 10:50:07 +08:00
CaptainB fb8b96779c fix: 处理某些pdf中不包括目录和内部链接不能完整导入的问题 2024-12-06 10:49:37 +08:00
shaohuzhang1 7c529c281c
fix: 修复阿里百炼项目模型v3调用方式 (#1773)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-05 17:50:50 +08:00
liqiang-fit2cloud e13a304d76 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-05 15:23:17 +08:00
CaptainB 7afbaba4ce fix: 语音播放去掉formrander相关文本
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-05 14:48:46 +08:00
liqiang-fit2cloud d6a629369f Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-05 13:49:16 +08:00
wangdan-fit2cloud a3e7fcb5c3 fix: 修复执行详情图片理解样式 2024-12-05 11:21:27 +08:00
wangdan-fit2cloud c16ca71a2b fix: 修复执行详情图片样式 2024-12-05 11:04:51 +08:00
shaohuzhang1 cefd66dcb0
fix: 修复图片识别历史记录无法显示多个图片问题 (#1768) 2024-12-05 11:03:36 +08:00
shaohuzhang1 f525181d25
fix: 修复文档状态在多次取消的情况下状态错误 (#1767) 2024-12-05 10:16:16 +08:00
liqiang-fit2cloud 7811e8cdf3 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-05 08:47:15 +08:00
wangdan-fit2cloud caa02c5571 fix: 优化文件状态提示样式
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-04 19:05:26 +08:00
wangdan-fit2cloud 5eaafb07a1 fix: 还原markdown行高限制,恢复部门样式 2024-12-04 18:39:13 +08:00
wxg0103 d6a7a5f92e refactor: 优化大量数据批量入库 2024-12-04 18:23:39 +08:00
shaohuzhang1 20920e6797
fix: 修复对话日志中表单未被禁用 (#1764) 2024-12-04 18:00:52 +08:00
wangdan-fit2cloud feb43711a2 fix: 优化对话图片展示 2024-12-04 16:58:59 +08:00
CaptainB a0fe31e16c fix: 修复应用列表上点演示没有api传入参数的问题
--bug=1049947 --user=刘瑞斌 【应用】应用列表中点演示按钮,跳转的页面没有带默认的api参数 https://www.tapd.cn/57709429/s/1625074
2024-12-04 16:48:56 +08:00
CaptainB 7346ef6a2c fix: 过滤空白的sheet
--bug=1049943 --user=刘瑞斌 【文档内容提取】-上传的excel中sheet为空时报错 https://www.tapd.cn/57709429/s/1625062
2024-12-04 16:30:43 +08:00
wangdan-fit2cloud 635de3a71d fix: 优化对话框选项卡样式 2024-12-04 16:20:57 +08:00
shaohuzhang1 fd35ef281c
refactor: 修改默认worker计算方法 (#1761)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-04 15:48:55 +08:00
shaohuzhang1 a71adf15af
fix: 修复迁移文档分段数没有重置 (#1760) 2024-12-04 15:44:09 +08:00
shaohuzhang1 f9451418e8
fix: 修复form表单表单数据未解构 (#1759) 2024-12-04 15:35:53 +08:00
shaohuzhang1 82888968a7
fix: 修复文档状态在有取消向量化的情况下状态错误 (#1758) 2024-12-04 15:25:06 +08:00
wxg0103 6dc8831a82 refactor: 优化退出登录后刷新页面
--bug=1049954 --user=王孝刚 【系统设置】退出登录后登录页面刷新两次,需优化 https://www.tapd.cn/57709429/s/1624834
2024-12-04 15:05:37 +08:00
shaohuzhang1 d314e497f8
fix: 修复知识库向量化提示错误 (#1756) 2024-12-04 14:54:18 +08:00
liqiang-fit2cloud 4412e94f19 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-04 14:49:32 +08:00
CaptainB b35b57fcd0 refactor: 上传文件支持多选 2024-12-04 14:36:11 +08:00
shaohuzhang1 6b4cee1412
fix: 修复对话使用api调用无法响应数据 (#1755) 2024-12-04 14:19:37 +08:00
liqiang-fit2cloud 1e1e98e155 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-04 14:18:56 +08:00
shaohuzhang1 c4c4b6e9cd
fix: 修复项目重启后文档状态不正确 (#1754) 2024-12-04 12:01:09 +08:00
wangdan-fit2cloud 6bca0a8558 fix: 优化权限设置 2024-12-04 11:22:45 +08:00
wxg0103 77b15fd7ce fix: 修复批量删除文档没有删除问题的缺陷
--bug=1048687 --user=王孝刚 【知识库】删除文档不会删除文档中分段关联的问题 https://www.tapd.cn/57709429/s/1624544
2024-12-04 11:18:11 +08:00
wxg0103 c54bfc7414 fix: 修复批量删除文档没有删除问题的缺陷
--bug=1048687 --user=王孝刚 【知识库】删除文档不会删除文档中分段关联的问题 https://www.tapd.cn/57709429/s/1624544
2024-12-04 11:18:11 +08:00
shaohuzhang1 d9a46b6ed2
fix: 修复form表单数据无法响应式更新 (#1752) 2024-12-04 11:00:29 +08:00
shaohuzhang1 650840449b
fix: 替换默认图片 (#1751) 2024-12-04 10:37:11 +08:00
shaohuzhang1 7d938f9e60
fix: 设置模型参数默认值,允许用户不设置模型参数 (#1750) 2024-12-04 10:30:45 +08:00
wxg0103 70fcb9ca66 refactor: 修改OAuth2 2024-12-04 09:58:08 +08:00
wxg0103 1a0c7a3144 refactor: 修改OAuth2 2024-12-04 09:34:50 +08:00
wanghe-fit2cloud ad37fde011 chore: 将 OAUTH2 显示修改为 OAuth2
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-03 22:35:48 +08:00
shaohuzhang1 7b1449f1d7
fix: 修复选项卡提交后设置为禁用 (#1748) 2024-12-03 18:52:26 +08:00
wangdan-fit2cloud 289e12ccdf fix: 修改文案 2024-12-03 18:04:28 +08:00
wangdan-fit2cloud 2087399e47 fix: 优化UI样式 2024-12-03 18:04:28 +08:00
CaptainB 12a263c69b refactor: 文件上传超过限制时禁止按钮 2024-12-03 18:03:33 +08:00
shaohuzhang1 5d86265ac8
fix: 修复没有输出节点时无法处理内容 (#1747) 2024-12-03 17:55:23 +08:00
shaohuzhang1 d04238aa25
build: 设置前端打包内存 (#1746) 2024-12-03 17:06:10 +08:00
CaptainB 71156e557b fix: 修复表单收集列表中的单行选项卡问题
--bug=1049886 --user=刘瑞斌 【应用编排】表单添加单行选项卡字段,添加后变成了选项卡类型 https://www.tapd.cn/57709429/s/1623563
2024-12-03 16:34:20 +08:00
CaptainB a896fcce74 fix: 修复表单收集列表中的默认值显示问题
--bug=1049462 --user=刘瑞斌 【表单收集】- 单选项、多选项、选项卡的默认值显示的不是标签 https://www.tapd.cn/57709429/s/1623556
2024-12-03 16:34:20 +08:00
wangdan-fit2cloud f818aa8fe7 fix: 修改部分样式 2024-12-03 16:28:29 +08:00
wxg0103 0c817a8447 style: 修改登录样式
--bug=1049910 --user=王孝刚 【登录】oauth2缩写字号;整体颜色改为主色 B500 https://www.tapd.cn/57709429/s/1623524
2024-12-03 16:26:35 +08:00
CaptainB 695576bfbd fix: 修复字符集不匹配的情况提取web的问题
--bug=1048607 --user=刘瑞斌 【github#1577】有个网站导入web知识库报错 https://www.tapd.cn/57709429/s/1623295
2024-12-03 15:48:26 +08:00
wangdan-fit2cloud b572956da6 fix: 优化部分样式 2024-12-03 15:45:11 +08:00
wangdan-fit2cloud 3e8734ae8f fix: 优化部分样式 2024-12-03 15:45:11 +08:00
wxg0103 e5ead8ea20 fix: 修复删除文档不会删除文档中分段关联的问题的缺陷
--bug=1048687 --user=王孝刚 【知识库】删除文档不会删除文档中分段关联的问题 https://www.tapd.cn/57709429/s/1623302
2024-12-03 15:30:22 +08:00
shaohuzhang1 b6c65154c5
fix: 修复子应用表单调用无法调用问题 (#1741) 2024-12-03 15:23:53 +08:00
wangdan-fit2cloud d4f9ac9f34 fix: 修复团队成员勾选管理同时勾选查看(#1664)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-03 14:51:56 +08:00
wxg0103 b40c0999d3 fix: 修复重复修改内容增加新的分段缺陷
--bug=1049256 --user=王孝刚 【应用日志】日志详情,修改内容,多次修改不应该新增新的分段 https://www.tapd.cn/57709429/s/1623112
2024-12-03 14:41:30 +08:00
liqiang-fit2cloud a3014c338a Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-03 10:19:23 +08:00
wangdan-fit2cloud 14ee62a7ac fix: 修复画布上table超出提示
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-02 19:01:32 +08:00
liqiang-fit2cloud f48ce1fcdf Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-02 18:43:18 +08:00
wangdan-fit2cloud b54584e485 fix: 优化显示 2024-12-02 18:27:16 +08:00
wxg0103 be0b407cf1 refactor: 钉钉扫码认证设置优化
--bug=1048604 --user=王孝刚 【系统管理】钉钉扫码认证设置优化 https://www.tapd.cn/57709429/s/1622777
2024-12-02 18:21:51 +08:00
CaptainB 36755672ba fix: 修复图片理解历史记录为节点时图片没展示的问题 2024-12-02 18:12:49 +08:00
wxg0103 5d4f35da2e fix: 修复应用日志清除后,对话中的文件在file表中没删掉的缺陷
--bug=1049852 --user=王孝刚 【应用编排】应用日志清除后,对话中的文件在file表中没删掉 https://www.tapd.cn/57709429/s/1622739
2024-12-02 18:00:59 +08:00
wangdan-fit2cloud 560d49ddf4 fix: 优化小助手图层层级 2024-12-02 17:51:56 +08:00
wangdan-fit2cloud db3312ffa2 fix: 修复小助手遮照宽度问题 2024-12-02 17:47:54 +08:00
shaohuzhang1 433ae5daf5
fix: 修复选择不可用的本地模型进行向量化,状态一直是排队中 (#1736) 2024-12-02 15:54:49 +08:00
shaohuzhang1 54bdc10b2e
fix: 修复表单收集删除表单配置后,参数输出没有及时更新 (#1735) 2024-12-02 15:45:50 +08:00
liqiang-fit2cloud 18b0e861a7 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-02 15:38:07 +08:00
wangdan-fit2cloud f1bf2668f2 fix: 修复样式问题 2024-12-02 15:35:52 +08:00
shaohuzhang1 ec27e1ead5
build: 打包指定内存为4G (#1734) 2024-12-02 15:32:39 +08:00
shaohuzhang1 762e9f64bd
feat: 执行详情表单收集显示样式修改 (#1733)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-02 14:48:49 +08:00
liqiang-fit2cloud 051415bb5e Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-12-02 14:16:05 +08:00
shaohuzhang1 8664840f7b
fix: 修复历史数据状态错误 (#1732) 2024-12-02 14:02:01 +08:00
shaohuzhang1 2084112d54
fix: 修复web站点知识库同步状态错误 (#1731) 2024-12-02 13:38:03 +08:00
CaptainB a32977094f fix: 修复图片理解携带历史会话 2024-12-02 12:43:36 +08:00
wangdan-fit2cloud 10fc464fb2 perf: 优化应用、知识库列表显示个数 2024-12-02 11:44:08 +08:00
shaohuzhang1 93d40b42e0
fix: 修复换个答案数据类型错误 (#1728) 2024-12-02 11:13:51 +08:00
shaohuzhang1 94c521967a
fix: 修复分页查询时间相同的情况下数据错乱 (#1727) 2024-12-02 11:06:25 +08:00
shaohuzhang1 be10863a97
fix: 修复表单设置后的文档内容提取节点不能输出内容 (#1726) 2024-12-02 10:54:35 +08:00
shaohuzhang1 be53247bcd
fix: 修复对话后未生成对话日志 (#1725) 2024-12-02 10:44:12 +08:00
shaohuzhang1 f547828bc9
fix: 修复关联问题不生效 (#1724) 2024-12-02 10:06:37 +08:00
shaohuzhang1 80e5e242b6
fix: 修复表单添加无法点击无效 (#1723)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-01 23:24:12 +08:00
shaohuzhang1 cc48f56f67
fix: 修复简易应用对话无法显示内容 (#1722)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-01 18:07:29 +08:00
shaohuzhang1 46c37257bc
fix: 修复单选框多选框 选择器未使用label作为选项 (#1719)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-12-01 00:05:04 +08:00
shaohuzhang1 f7588c0b28
fix: 修复对话中禁止表单提交 (#1718) 2024-11-30 23:33:28 +08:00
shaohuzhang1 5ebb88b6de
fix: 修复工作流多个form表单收集后面节点无法使用表单数据 (#1717) 2024-11-30 23:08:40 +08:00
shaohuzhang1 b8aa4756c5
fix: 修复工作流节点输出等问题 (#1716)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-11-29 19:26:16 +08:00
wangdan-fit2cloud bce2558951 fix: 修复部分样式问题 2024-11-29 18:55:05 +08:00
wangdan-fit2cloud 18b454044f fix: 优化表格文字过多问题 2024-11-29 18:55:05 +08:00
CaptainB 00971bb108 refactor: 添加参数时单选、多选、选项卡设置第一个条目
--bug=1049778 --user=刘瑞斌 【表单收集】- 组件类型选择单选框、多选框、选项卡、单行选项卡后,默认显示一行选项值。 https://www.tapd.cn/57709429/s/1621602
2024-11-29 18:51:06 +08:00
wxg0103 4d4abb040b fix: 修复嵌入应用的指定回复节点回复None的缺陷
--bug=1049643 --user=王孝刚 【应用】简单应用输出节点连接多个执行回复节点,回复节点引用简单应用的输出结果变量,执行后回复结果为None https://www.tapd.cn/57709429/s/1621456
2024-11-29 16:59:46 +08:00
liqiang-fit2cloud f9636f63b3 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-29 16:35:09 +08:00
CaptainB 78cd949f43 fix: 修复上传xlsx里的图片没在文档提取中显示的问题 2024-11-29 16:28:34 +08:00
liqiang-fit2cloud a480ab0b6b Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-29 15:27:30 +08:00
CaptainB cf4b4af6be fix: 修复首次打开应用文件上传,直接点击发布后没有显示上传按钮的问题 2024-11-29 12:54:20 +08:00
CaptainB 66e91bd316 fix: 修复执行历史详情里节点和工作流类型的展示问题
--bug=1049655 --user=刘瑞斌 【应用编排】图片理解模型,历史记录选择节点和工作流的效果反了 https://www.tapd.cn/57709429/s/1620986
2024-11-29 12:36:04 +08:00
liqiang-fit2cloud 8727de92d7 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-29 08:46:47 +08:00
wangdan-fit2cloud 8ea789a870 fix: 优化文案
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-28 18:44:16 +08:00
CaptainB b8de3690cf fix: 修复应用复制没有把语音和文件上传配置一起复制的问题
--bug=1049519 --user=刘瑞斌 【应用】应用复制,复制的副本没有将语音输入和语音合成模型复制过来 https://www.tapd.cn/57709429/s/1620615
2024-11-28 18:36:58 +08:00
CaptainB c07f728d87 fix: 上传文本文件去掉csv
--bug=1049721 --user=刘瑞斌 【知识库】上传文本文件夹,里面包含csv文件,csv文件也能上传成功 https://www.tapd.cn/57709429/s/1620432
2024-11-28 18:33:41 +08:00
wxg0103 f0fecf455f fix: 修复清除日志报错的缺陷
--bug=1049704 --user=王孝刚 【应用】日志清除策略没生效 https://www.tapd.cn/57709429/s/1620515
2024-11-28 17:52:47 +08:00
CaptainB b43f03152c fix: 修复首次打开应用文件上传,直接点击发布后没有显示上传按钮的问题 2024-11-28 17:10:57 +08:00
CaptainB 80aeecfe01 refactor: 执行详情里展示文档提取日志时多个文件单独显示,最多500字符 2024-11-28 16:30:44 +08:00
CaptainB 2a07a50a60 fix: 修复文档提取doc图片没有保存和展示的问题 2024-11-28 16:17:23 +08:00
wangdan-fit2cloud 4dec2a6a58 fix: 优化部分样式 2024-11-28 15:56:32 +08:00
CaptainB f638abdea2 fix: 修复文档提取doc图片没有保存和展示的问题 2024-11-28 15:07:21 +08:00
wxg0103 be1ddeb252 fix: 修复引用分段详情弹框和执行详情里的文档名称不能点的缺陷
--bug=1049682 --user=王孝刚 【应用】引用分段详情弹框和执行详情里的文档名称不能点 https://www.tapd.cn/57709429/s/1619877
2024-11-28 14:38:47 +08:00
liqiang-fit2cloud 514618bddb Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-28 13:50:57 +08:00
CaptainB c3d92e8dc8 fix: 修复文档提取参数选择了开始问题报会话不存在的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1049648 --user=刘瑞斌 【应用编排】文档内容提取节点,节点设置选择 “开始-用户问题” 对话报错 https://www.tapd.cn/57709429/s/1619714
2024-11-28 11:13:14 +08:00
liqiang-fit2cloud 58c0c34b2b Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-27 14:10:17 +08:00
CaptainB b7905198a2 fix: 修复文件配置全没勾选的情况下还能上传文件的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1049620 --user=刘瑞斌 【应用编排】文件上传设置没勾选文档也没勾选图片,发布后对话还是能上传文档和图片 https://www.tapd.cn/57709429/s/1618519
2024-11-27 12:28:30 +08:00
CaptainB 59f5c8ac76 fix: 修复文档提取报错没有显示的问题 2024-11-27 12:20:16 +08:00
wangdan-fit2cloud 33ed8aa4ae fix: 修复历史聊天记录字段格式问题 2024-11-27 11:35:35 +08:00
wxg0103 5df4925dbe refactor: 优化oauth2 认证的页面
--bug=1049381 --user=王孝刚 【系统管理】认证设置- OAUTH 2 认证设置样式优化 https://www.tapd.cn/57709429/s/1618325
2024-11-27 11:05:27 +08:00
shaohuzhang1 da7e9b1460
fix: 修复文档状态部分问题 (#1699)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-26 19:40:26 +08:00
wangdan-fit2cloud a37a6184b4 fix: 修复部分样式问题 2024-11-26 19:10:03 +08:00
wxg0103 de630b4595 fix: 修复删除知识库的段落后,日志内容还是显示标注的缺陷
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-26 17:56:15 +08:00
CaptainB f1083d973e refactor: 文档提取details保存content长度限制为500 2024-11-26 16:24:14 +08:00
shaohuzhang1 93a5c6eb2d
fix: 修复文档状态数据数据错误问题 (#1697) 2024-11-26 16:24:03 +08:00
wxg0103 52575360ed fix: 修复在对话日志中删除保存的文档,关联的问题未删除的缺陷
--bug=1049555 --user=王孝刚 【应用】将对话日志保存到文档后,在对话日志中删除保存的文档,关联的问题未删除 https://www.tapd.cn/57709429/s/1617726
2024-11-26 16:01:25 +08:00
wxg0103 aafc855435 refactor: 优化执行详情展示 2024-11-26 16:01:09 +08:00
liqiang-fit2cloud c0a04eee6e Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-26 15:15:13 +08:00
CaptainB 6f24a02213 refactor: 上传附件tooltip展示大写后缀以、分割 2024-11-26 14:22:46 +08:00
wxg0103 6a24d2eb8d refactor: 去掉无用代码 2024-11-26 14:07:47 +08:00
shaohuzhang1 98f25c99f2
fix: 处理历史数据 (#1692) 2024-11-26 13:29:46 +08:00
shaohuzhang1 e978c83f02
feat: 文档状态 2024-11-26 12:08:13 +08:00
wxg0103 663ffcdc4d fix: 去掉本次对话 2024-11-26 11:52:00 +08:00
wxg0103 d276bc928f style: 优化引用知识库样式 2024-11-26 11:41:47 +08:00
liqiang-fit2cloud 1a8544a03f Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-26 10:35:49 +08:00
CaptainB 3ceefa37cb fix: 修复关闭文件上传开关后开始节点没有取消document和image
--bug=1049507 --user=刘瑞斌 【应用】应用设置-基本信息中开启文件上传 再关闭,开始节点的参数输出“文档”没有同步删除 https://www.tapd.cn/57709429/s/1617263
2024-11-26 10:32:16 +08:00
CaptainB 3bd18bddca refactor: 执行详情展示图片理解模型的tokens
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-25 17:43:32 +08:00
CaptainB ae86987358 feat: 高级应用用户输入参数增加选项卡类型
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-25 17:13:09 +08:00
CaptainB 8c34ac3594 feat: 高级应用用户输入参数增加多选类型 2024-11-25 16:45:33 +08:00
wxg0103 8240eb14bf refactor: 优化知识来源显示
--story=1016652 --user=王孝刚 【南区】应用对话回复支持显示引用分段来知识库的文档来源等信息 https://www.tapd.cn/57709429/s/1616642
2024-11-25 16:37:02 +08:00
CaptainB 936e55d3a3 refactor: 执行详情里不保存图片base64内容 2024-11-25 14:51:33 +08:00
CaptainB ce4e23020a refactor: 执行详情里不保存文档content 2024-11-25 14:51:33 +08:00
liqiang-fit2cloud 5974bd7986 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-25 13:46:12 +08:00
CaptainB ce7b1d941b refactor: 多文档分割线展示为多个‘-’ 2024-11-25 11:43:34 +08:00
CaptainB 639e1d7b6d fix: 修复查看详情时没有上传图片不显示提示词的问题 2024-11-25 11:35:03 +08:00
CaptainB ebfadf2b6c fix: 修复对话页面pdf不能正常上传的问题
--bug=1049431 --user=刘瑞斌 【应用编排】应用对话,上传文档无法选择pdf文档 https://www.tapd.cn/57709429/s/1616013
2024-11-25 10:23:22 +08:00
Qiyuan Jiao 8133821e19
style: 设置文本自动换行 (#1673)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-11-22 22:03:46 +08:00
CaptainB 64e8f4dc9f chore: 文档内容无法提取的时候输出错误信息 2024-11-22 17:56:07 +08:00
wangdan-fit2cloud 98db08d263 fix: 上传文件对话增加文件下载功能 2024-11-22 17:55:09 +08:00
wxg0103 a96b0c166a fix: 修改打包失败 2024-11-22 17:54:23 +08:00
wxg0103 b931fbd7ab refactor: 优化按钮位置 2024-11-22 17:05:18 +08:00
wangdan-fit2cloud cbe044310e fix: 优化执行详情显示 2024-11-22 17:02:28 +08:00
wangdan-fit2cloud 1f88ee266d fix: 修改部分显示样式 2024-11-22 16:27:50 +08:00
CaptainB cfb8e837ff fix: 修复单次上传文件限制
--bug=1049382 --user=刘瑞斌 【应用编排】文件上传,单词上传最多文件数没限制住 https://www.tapd.cn/57709429/s/1615405
2024-11-22 15:23:11 +08:00
CaptainB 91633b58b8 fix: 修复单次上传文件限制
--bug=1049382 --user=刘瑞斌 【应用编排】文件上传,单词上传最多文件数没限制住 https://www.tapd.cn/57709429/s/1615405
2024-11-22 15:19:11 +08:00
wxg0103 1b87f98874 refactor: 优化文案
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-22 11:15:26 +08:00
wangdan-fit2cloud 9719c6e63a fix: 修复图片理解提示词显示字段
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-21 17:58:32 +08:00
wangdan-fit2cloud 9daabd1c6d fix: 完善执行详情 2024-11-21 17:51:55 +08:00
wangdan-fit2cloud 044e71ac44 fix: 执行增加表单收集节点显示 2024-11-21 17:28:30 +08:00
CaptainB fe1ca9987a fix: 修复图片理解结果没有正常提取到的问题
--bug=1049298 --user=刘瑞斌 【应用编排】引用图片理解参数输出变量,没有输出内容 https://www.tapd.cn/57709429/s/1614589
2024-11-21 17:13:28 +08:00
CaptainB 179666e00f fix: 修复模型card上没显示图片理解类型
--bug=1049276 --user=刘瑞斌 [系统管理]模型设置-添加的OpenAI图片理解模型后,模型类型显示为空 https://www.tapd.cn/57709429/s/1614428
2024-11-21 16:06:49 +08:00
CaptainB b8670fa27a fix: 修复保存提取文档中文件来源不生效的问题
--bug=1049269 --user=刘瑞斌 【应用编排】文档内容提取节点,选择图片变量后保存不生效 https://www.tapd.cn/57709429/s/1614310
2024-11-21 15:03:08 +08:00
CaptainB 49d90e0625 fix: 修复对话详情中没有文档展示的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1049251 --user=刘瑞斌 【应用编排】上传文件后,执行详情里没显示文件信息 https://www.tapd.cn/57709429/s/1614098
2024-11-21 12:57:27 +08:00
wxg0103 4badd3ab6e fix(知识库): 修复知识库字符未更新的缺陷
--bug=1049232 --user=王孝刚 【应用】对话日志-添加到知识库后,文档字符数未同步更新 https://www.tapd.cn/57709429/s/1614059
2024-11-21 11:36:22 +08:00
liqiang-fit2cloud c06d5cc8b4 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-20 13:58:51 +08:00
CaptainB aba33eb00a fix: 修复图片理解节点发布时没有校验必填项的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-20 10:43:04 +08:00
CaptainB 12d54aff80 chore: 去掉代码中的警告 2024-11-20 10:43:04 +08:00
liqiang-fit2cloud 7923be3c68 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-20 09:34:53 +08:00
wxg0103 7985a3f1e0 refactor(应用): 优化嵌入应用的执行详情
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-19 17:58:02 +08:00
liqiang-fit2cloud ba2223c944 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-19 17:28:34 +08:00
wxg0103 260cdb044e refactor(应用): 优化嵌入应用 2024-11-19 17:25:12 +08:00
wxg0103 ec4f844abd fix(应用): 修复对话日志添加的知识库的相关问题 2024-11-19 17:03:59 +08:00
CaptainB 4fd6884ad6 fix: 处理校验图片模型的报错 2024-11-19 16:53:32 +08:00
CaptainB b91d9fdaf0 refactor: 处理多张图片的HumanMessage 2024-11-19 16:29:04 +08:00
CaptainB 547b2bdbaf fix: 开启文件上传开关时设置默认值
--bug=1049087 --user=刘瑞斌 【应用编排】开启文件上传后,全局变量列表没有自动生成文件变量 https://www.tapd.cn/57709429/s/1612303
2024-11-19 16:15:55 +08:00
CaptainB a28b55b6ad fix: 图片理解节点可以作为结束节点
--bug=1049088 --user=刘瑞斌 【应用编排】图片理解模型应该可以作为结束节点 https://www.tapd.cn/57709429/s/1612298
2024-11-19 16:15:55 +08:00
CaptainB 56a09d7b2c refactor: 根据配置类型限制上传文件格式 2024-11-19 15:35:32 +08:00
shaohuzhang1 119bba030b
fix: 修复前端类型错误 (#1653) 2024-11-19 15:10:12 +08:00
shaohuzhang1 6801a24c38
feat: 表单节点添加多选框,选项卡等组件 (#1651) 2024-11-19 14:24:38 +08:00
liqiang-fit2cloud 390cec485b Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-19 14:14:11 +08:00
wxg0103 1bc7f70f79 fix(系统设置): 修复添加已存在的成员失败后,删除该成员,仍不能继续添加的缺陷
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1049026 --user=王孝刚 【系统设置】团队成员-添加成员时,选中已存在的成员之后再删除,仍不能继续添加 https://www.tapd.cn/57709429/s/1611718
2024-11-19 10:20:16 +08:00
liqiang-fit2cloud df5478a909 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-19 09:24:36 +08:00
wangdan-fit2cloud 54e0000db9 feat: 完善对话上传文档功能
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-18 19:10:49 +08:00
wxg0103 7eb031e57d refactor(应用): 优化应用日志显示 2024-11-18 18:50:04 +08:00
shaohuzhang1 7d161cdd43
feat: 添加对话中文件数据 (#1647) 2024-11-18 18:39:23 +08:00
shaohuzhang1 c3d1389362
style: 修复表单收集样式 (#1646) 2024-11-18 18:14:42 +08:00
wangdan-fit2cloud 2f03409c9f feat: 对话上传文件功能前端样式更新 2024-11-18 18:08:26 +08:00
shaohuzhang1 d958db0538
feat: 工作流画布支持一键展开,一件收起节点 #1597 2024-11-18 17:47:24 +08:00
wxg0103 3b1de04227 feat(模型管理): 支持阿里云百炼大模型 2024-11-18 16:24:35 +08:00
liqiang-fit2cloud 444d4fc55d Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-18 14:23:42 +08:00
CaptainB e1df4b2857 fix: 处理PDF中出现 \0 字符报 Null characters are not allowed
--bug=1048190 --user=刘瑞斌 【知识库】- 上传PDF文档 报错  ,关联issue #1468 https://www.tapd.cn/57709429/s/1611070
2024-11-18 12:46:37 +08:00
liqiang-fit2cloud a234dabd83 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-15 15:12:45 +08:00
CaptainB 4dd497ea26 chore: 处理前端undefined的问题
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-11-15 14:34:40 +08:00
liqiang-fit2cloud 3ac5477556 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-15 10:14:01 +08:00
CaptainB 832d2a2e7f refactor: 处理历史会话中图片的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-14 21:44:31 +08:00
wxg0103 b406a8954e feat: 增加oauth2的认证
--story=1016294 --user=王孝刚 【东区】希望可以支持Oauth2【X-Pack】 https://www.tapd.cn/57709429/s/1610096
2024-11-14 18:40:13 +08:00
shaohuzhang1 8b707272ca perf: 优化打开chatId代码 2024-11-14 18:27:16 +08:00
CaptainB 359dc9f3ee fix: 处理多文档时文件内容提取不正确的问题 2024-11-14 14:51:20 +08:00
CaptainB 10e53f08e2 feat: 高级编排支持文件上传(WIP) 2024-11-14 14:24:36 +08:00
CaptainB b57a619bdb feat: 高级编排支持文件上传(WIP) 2024-11-14 13:36:16 +08:00
shaohuzhang1 a0cfcb73a9 fix: 修复对话时,模型参数删除后依然进行校验 2024-11-14 11:43:25 +08:00
liqiang-fit2cloud b32bc73e63 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-14 11:07:41 +08:00
CaptainB a65ecf8624 chore: remove some warning code 2024-11-14 10:58:38 +08:00
shaohuzhang1 8cf23fe990 fix: 修复工作流节点收缩后无法发布 #1582 2024-11-14 10:04:45 +08:00
shaohuzhang1 89cea4e20a fix: 修复ai对话框无法正常显示对话内容 2024-11-14 09:51:37 +08:00
maninhill ac37e92ab9
chore: Update README.md (#1624)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-13 19:15:08 +08:00
shaohuzhang1 b9d1e3b07d fix: 修复如果工作流未响应数据,响应默认数据 2024-11-13 19:05:26 +08:00
CaptainB 02e9774c46 feat: 高级编排支持文件上传(WIP) 2024-11-13 18:56:43 +08:00
CaptainB 88b6eebf35 feat: 高级编排支持文件上传(WIP) 2024-11-13 18:01:59 +08:00
wangdan-fit2cloud 60097b4903 fix: 修改对话页面样式 2024-11-13 17:53:54 +08:00
shaohuzhang1 c866d05f33 fix: 修复直接回答对话无法显示文本 2024-11-13 17:39:37 +08:00
shaohuzhang1 6102c71307 fix: 修复工作流对话,无法显示回答内容 2024-11-13 17:06:50 +08:00
shaohuzhang1 7369231690 feat: 添加画布一件美化 2024-11-13 16:57:00 +08:00
liqiang-fit2cloud 92305f5713 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-13 15:44:52 +08:00
wxg0103 2722b5a406 refactor: 修改执行的方法
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-13 15:43:26 +08:00
liqiang-fit2cloud 30934223a2 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-11-13 15:16:25 +08:00
liqiang-fit2cloud 6f84239e8b fix: 修复swagger接口文档中schema不正确的问题 2024-11-13 15:16:16 +08:00
liqiang-fit2cloud 19ae06d4ec fix: 修复swagger接口文档中schema不正确的问题 2024-11-13 15:14:06 +08:00
wxg0103 4a043cf4be refactor: 修改执行的方法 2024-11-13 15:10:27 +08:00
wxg0103 eb24750028 feat: 对话日志默认使用最后对话时间
--story=1017064 --user=王孝刚 【对话日志】- 列表排序使用最后对话时间 issue #1587 https://www.tapd.cn/57709429/s/1609354
2024-11-13 15:07:38 +08:00
CaptainB 51facbc46d chore: defineProps 不需要手动引入 2024-11-13 14:00:02 +08:00
wangdan-fit2cloud fd0f3e2b5a fix: 修复搜索后滚动加载问题(#1590) 2024-11-13 13:21:07 +08:00
wangdan-fit2cloud 889900fbab fix: 修复部分样式 2024-11-13 13:20:34 +08:00
wangdan-fit2cloud fb7fc28d84 fix: 【应用】简单配置中对过长名称知识库进行关联时有概率导致无法显示知识库全部名称(#1596) 2024-11-13 13:20:34 +08:00
CaptainB 869295b532 refactor: 定时清理数据库中没关联应用的图片 2024-11-13 13:06:27 +08:00
shaohuzhang1 2ed8a9a7e9 fix: 修复工作流未展示表单,图片理解,文档提取节点 2024-11-13 11:41:10 +08:00
wangdan-fit2cloud d1002f48ab fix: AI回复头像调整(#1592) 2024-11-13 11:37:36 +08:00
shaohuzhang1 1a1e93296e feat: 工作流表单节点 2024-11-13 10:39:05 +08:00
wxg0103 4e615db713 feat: 修改标注时可以选择默认知识库
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--story=1016833 --user=王孝刚 对话日志-修改标注时可以选择默认知识库 #229 https://www.tapd.cn/57709429/s/1608846
2024-11-12 17:53:57 +08:00
CaptainB 0f60017f67 refactor: 添加模型时可以过滤图片模型
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-12 14:13:13 +08:00
CaptainB 8a8305e75b feat: 高级编排支持文件上传(WIP) 2024-11-12 13:29:40 +08:00
wxg0103 72b91bee9a feat: 工作流增加嵌入应用
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--story=1016666 --user=王孝刚 【北区-售前】工作流支持嵌入应用 https://www.tapd.cn/57709429/s/1608362
2024-11-11 18:38:48 +08:00
wxg0103 6e6f564713 fix: 修复日志导出格式不正确的缺陷
--bug=1048673 --user=王孝刚 【应用】导出对话日志是xls格式,excel 打开提示文件格式不对 https://www.tapd.cn/57709429/s/1608292
2024-11-11 18:36:40 +08:00
shaohuzhang1 9a66044ec4 feat: 去除工作流直接返回内容的标题数据
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-11-07 17:54:33 +08:00
shaohuzhang1 33d88954c6 fix: 添加对话stream流式结束标记 2024-11-07 15:58:36 +08:00
wxg0103 7bf7df5e27 refactor: 优化文案 2024-11-07 15:48:54 +08:00
shaohuzhang1 739a20bc38 fix: 修复函数库,非必填引用类型,不传值 执行报错 #1564 2024-11-07 15:46:59 +08:00
shaohuzhang1 8a0c204961 fix: 修复对话中表格中图片时出现错位 #1561 2024-11-07 15:37:58 +08:00
wxg0103 fc015d17bc fix: 修复xinference向量模型添加失败的缺陷
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-07 09:09:23 +08:00
wangdan-fit2cloud f30d3d736b fix: 【团队成员】修复全选的问题 (#1558)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-06 17:01:04 +08:00
shaohuzhang1 b2ac658c4f feat: 工作流编排应用记住节点的收起/展开状态 #1543 2024-11-06 15:32:18 +08:00
shaohuzhang1 22d9fdc42f fix: 修复旧word文档图片无法正常识别 #1533 2024-11-06 14:20:10 +08:00
shaohuzhang1 af509a9f58 fix: 修复工作流节点未输出数据无法获取执行详情问题 #1550 2024-11-06 13:39:41 +08:00
shaohuzhang1 6a226c9539 fix: 修复工作流知识库检索结果标题不存在的时候显示错误 #1535 2024-11-06 11:31:21 +08:00
shaohuzhang1 5285745321 fix: 修复应用发布后无法使用最新的应用设置 2024-11-06 11:08:58 +08:00
wxg0103 e6066eb69e style: 优化样式
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-05 19:13:34 +08:00
liqiang-fit2cloud 55fb9a114c
Update llm-code-review.yml
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-05 14:55:01 +08:00
CaptainB 3a1728cd1c feat: OpenAI图片模型 2024-11-05 13:53:00 +08:00
CaptainB ddad340534 feat: 讯飞图片模型 2024-11-05 13:53:00 +08:00
wxg0103 f318f2da40 feat: 应用、知识库、函数库增加创建者
--story=1016834 --user=王孝刚 应用、知识库、函数增加创建者,可以按创建用户查看资源 #1304 https://www.tapd.cn/57709429/s/1605886
2024-11-05 13:50:45 +08:00
liqiang-fit2cloud 81b8e522e6 Merge branch 'main' of https://github.com/maxkb-dev/maxkb
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-04 17:50:31 +08:00
liqiang-fit2cloud 2433d4ba84 build: add codereview action. 2024-11-04 17:48:51 +08:00
maninhill 35d553ff8e
chore: Update README.md (#1538)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-11-03 10:21:54 +08:00
wxg0103 3cee9bc495 refactor: 修改依赖包的方法
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-11-01 17:33:28 +08:00
刘瑞斌 251e4645b7 Revert "chore(deps): update langchain-community requirement"
This reverts commit e8c4758d87.
2024-11-01 17:08:54 +08:00
dependabot[bot] e8c4758d87 chore(deps): update langchain-community requirement
Updates the requirements on [langchain-community](https://github.com/langchain-ai/langchain) to permit the latest version.

Updates `langchain-community` to 0.2.17
- [Release notes](https://github.com/langchain-ai/langchain/releases)
- [Commits](https://github.com/langchain-ai/langchain/compare/langchain-community==0.2.4...langchain-community==0.2.17)

---
updated-dependencies:
- dependency-name: langchain-community
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-01 16:36:56 +08:00
wxg0103 c0dd4e8034 style: 修复样式问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-11-01 11:52:43 +08:00
maninhill 958fcdc5a5
chore: Update README.md (#1530) 2024-11-01 10:47:17 +08:00
liqiang-fit2cloud a41b977571 docs: Update README.md. 2024-11-01 08:55:46 +08:00
maninhill fa012b2d6f
chore: Update README.md (#1528)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-31 13:52:04 +08:00
shaohuzhang1 44b3aed595 fix: 修复模型参数修改后,未清除旧数据
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-30 21:12:34 +08:00
wxg0103 d49a7851b8 fix: 修复节点数据为空的时候,到处日志报错的缺陷 2024-10-30 20:56:29 +08:00
CaptainB 798ca17b3a fix: 修复xinference 语音模型提示model参数的问题
--bug=1047998 --user=刘瑞斌 【模型管理】xinference语音合成模型,点击播放按钮朗读文本没有反应 https://www.tapd.cn/57709429/s/1602805
2024-10-30 20:37:41 +08:00
wxg0103 16cf619032 fix: 修复样式
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-30 20:30:32 +08:00
shaohuzhang1 0672d65784 fix: 修复对话认证交互 2024-10-30 18:42:50 +08:00
shaohuzhang1 edc47d6747 fix: 修复ai对话回答俩次 2024-10-30 18:26:41 +08:00
shaohuzhang1 6f284420d6 fix: 修复多work导致数据不同步问题 2024-10-30 18:09:33 +08:00
wangdan-fit2cloud 8076d4b048 perf: 优化嵌入第三方弹出层样式 2024-10-30 18:08:40 +08:00
shaohuzhang1 f20c3d0d80 perf: 优化模型表单弹框 2024-10-30 17:03:28 +08:00
wxg0103 14bda2759a fix: 修复钉钉扫码 2024-10-30 17:01:32 +08:00
shaohuzhang1 c960123b41 perf: 优化应用编排历史版本 2024-10-30 16:48:42 +08:00
wangdan-fit2cloud f9611c2c03 fix: 优化样式问题 2024-10-30 16:10:26 +08:00
wangdan-fit2cloud 5ae19a48d9 perf: 优化错误提示框关闭时间 2024-10-30 15:32:57 +08:00
shaohuzhang1 2bbe1754ed fix: 修复浮窗模式嵌入第三方,入口位置调整后引导图没有跟随变更位置 2024-10-30 14:37:35 +08:00
CaptainB f89b98d255 fix: 打开语音参数配置时刷新最新的模型参数设置 2024-10-30 14:00:08 +08:00
wangdan-fit2cloud 9c144b526a fix: 优化样式 2024-10-30 13:56:09 +08:00
wanghe 23cd47a85a
Update README.md (#1512) 2024-10-30 13:50:41 +08:00
shaohuzhang1 169613ec6a perf: 优化文档列表按钮 2024-10-30 13:40:46 +08:00
CaptainB 7ed2d11630 fix: 关闭语音开关后清除模型id
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1047571 --user=刘瑞斌 【github#1376】【应用】在应用处关闭语音模型开关,去模型处删除模型,提示关联了一个应用,无法删除该模型。 https://www.tapd.cn/57709429/s/1601917
2024-10-30 12:18:53 +08:00
CaptainB a377ce6e7b fix: 修复应用语音播放试听不生效的问题
--bug=1048023 --user=刘瑞斌 【应用】社区版,应用设置界面,语音合成模型,点击试听没有反应 https://www.tapd.cn/57709429/s/1601904
2024-10-30 12:10:47 +08:00
wxg0103 5d278ee3ea fix: 修复钉钉扫码 2024-10-30 12:03:09 +08:00
shaohuzhang1 31a6a528d6 fix: 修复对话窗口,全局变量下拉框选项显示不全 2024-10-30 11:57:36 +08:00
shaohuzhang1 c500920963 refactor: 删除不必要的代码 2024-10-30 11:34:18 +08:00
wxg0103 c02d76cfbf fix: 修复保存清楚时间报错的缺陷
--bug=1048275 --user=王孝刚 【应用】有一个应用设置日志清除策略,提示“引用分段数”字段必填 https://www.tapd.cn/57709429/s/1601736
2024-10-30 11:30:36 +08:00
wxg0103 6eb2e1b05b fix: 修复保存清楚时间报错的缺陷
--bug=1048275 --user=王孝刚 【应用】有一个应用设置日志清除策略,提示“引用分段数”字段必填 https://www.tapd.cn/57709429/s/1601736
2024-10-30 11:30:36 +08:00
shaohuzhang1 313e10e1a0 fix: 修复模型参数校验问题 2024-10-30 11:22:38 +08:00
wangdan-fit2cloud 0c655147e8 fix: 优化 2024-10-30 11:10:51 +08:00
wxg0103 c79660747a fix: 修复前端报错的缺陷
--bug=1048335 --user=王孝刚 【系统设置】扫描登录页面弹出错误信息:Missing parameters https://www.tapd.cn/57709429/s/1601519
2024-10-30 10:47:06 +08:00
CaptainB 7e45cd54d2 fix: 修复添加参数对话框的标题文字不对应的问题
--bug=1047778 --user=刘瑞斌 【应用编排】- 用户输入,点击编辑参数后,关闭对话框,再点击添加参数打开的还是编辑参数对话框 https://www.tapd.cn/57709429/s/1601532
2024-10-30 10:11:39 +08:00
wxg0103 10a7edd54a fix: 修复前端报错的缺陷
--bug=1048335 --user=王孝刚 【系统设置】扫描登录页面弹出错误信息:Missing parameters https://www.tapd.cn/57709429/s/1601519
2024-10-30 10:01:24 +08:00
CaptainB 527ddbf1e8 fix: 修复文档表格按照状态过滤没有生成问题中的缺陷
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1048200 --user=刘瑞斌 【知识库】文档列表按文件状态排序,少了一个「生成问题中」的选项 https://www.tapd.cn/57709429/s/1601157
2024-10-29 21:21:53 +08:00
wxg0103 da38621d1d refactor: 优化代码
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-29 19:22:20 +08:00
shaohuzhang1 6ebeeaf134 fix: 忽略icon文件 2024-10-29 19:20:05 +08:00
shaohuzhang1 32b32959d9 fix: 修复知识库导出无文档知识库导出无法打开文件 2024-10-29 18:55:09 +08:00
wxg0103 6ad9bd83a2 refactor: 优化代码 2024-10-29 18:53:37 +08:00
wxg0103 b06924b81e refactor: 优化代码 2024-10-29 18:53:02 +08:00
shaohuzhang1 401552e819 fix: 修复【模型管理】添加模型,选择供应商页面筛选模型类型,选择供应商后再返回供应商列表,变成了全部供应商 2024-10-29 18:34:12 +08:00
shaohuzhang1 a67ecb3011 fix: 修复gemini图表无法显示问题 2024-10-29 18:11:11 +08:00
shaohuzhang1 6890503689 fix: 修复【应用编排】知识库检索节点 最大应用字符数 不生效 2024-10-29 17:47:42 +08:00
shaohuzhang1 e68e5873c9 fix: 修复导出应用日志引用分段字段格式 2024-10-29 17:33:25 +08:00
CaptainB 67fd113449 chore: 重复提交的生成任务弹框提示 2024-10-29 16:12:49 +08:00
wxg0103 0f63db683c fix: 修复应用恢复默认样式不生效的缺陷
--bug=1048192 --user=王孝刚 【应用】显示设置恢复默认无效 https://www.tapd.cn/57709429/s/1600563
2024-10-29 15:33:16 +08:00
wxg0103 69e3d1020e fix: 修复系统恢复默认样式不生效的缺陷 2024-10-29 15:18:03 +08:00
CaptainB 7aee911430 refactor: 按用户保存提示词缓存 2024-10-29 15:08:14 +08:00
shaohuzhang1 0d263a311c fix: 修复邮箱未设置提示 2024-10-29 14:34:46 +08:00
shaohuzhang1 291040660f fix: 修复json类型参数没有开启必填,应用中显示了必填标志 2024-10-29 14:22:26 +08:00
wxg0103 77d29471a1 refactor: 优化代码 2024-10-29 11:55:19 +08:00
CaptainB 834ccaa35b refactor: PDF分段强制按字数限制
--bug=1047568 --user=刘瑞斌 【github#1363】pdf 文件高级分段默认分段长度为500,但生成的段落长度超过29000字符 https://www.tapd.cn/57709429/s/1600183
2024-10-29 11:44:37 +08:00
shaohuzhang1 2cb8d26609
fix: 修复应用编排自定义函数,数据未清空 (#1487) 2024-10-29 11:36:31 +08:00
wangdan-fit2cloud 9da3d7a9ec fix: 修复应用设置前端报错
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-29 10:59:25 +08:00
wxg0103 37d39dbaf0 fix: 修复保存清除策略报错的缺陷
--bug=1048275 --user=王孝刚 【应用】有一个应用设置日志清除策略,提示“引用分段数”字段必填 https://www.tapd.cn/57709429/s/1600113
2024-10-29 10:48:54 +08:00
wxg0103 c39c943971 fix: 修复对话日志导出,引用分段数、分段标题+内容、知识库检索结果 显示错误的缺陷
--bug=1048277 --user=王孝刚 【应用编排】对话日志导出,引用分段数、分段标题+内容、知识库检索结果 显示错误 https://www.tapd.cn/57709429/s/1599889
2024-10-29 10:04:39 +08:00
wangdan-fit2cloud 7babed349a fix: 修复历史发布数据问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-28 19:18:38 +08:00
wxg0103 0147a3efd0 refactor: 优化代码 2024-10-28 19:08:20 +08:00
shaohuzhang1 80415c9372
fix: 修复知识库文档中若图片不存在,前端对话闪烁问题 (#1483) 2024-10-28 19:05:21 +08:00
wangdan-fit2cloud ce3976f8db fix: 修复自定义小助手颜色问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-28 18:38:20 +08:00
wangdan-fit2cloud 0e7ac12767 perf: 优化样式 2024-10-28 18:38:20 +08:00
wangdan-fit2cloud e0d402d082 fix: 优化样式 2024-10-28 18:38:20 +08:00
shaohuzhang1 83d97439e4 fix: 修复导入word文档,有的图片导入不进去 2024-10-28 17:44:11 +08:00
wxg0103 aab9cc63b1 refactor: 优化清除日志输入框的判断逻辑 2024-10-28 17:24:20 +08:00
wxg0103 76f3afbc7a fix: 修复双击ldap结果跳转到oidc的缺陷
--bug=1048233 --user=王孝刚 【用户登录】登录首页-点击LDAP两下,会提示跳转至认证源页面登录 https://www.tapd.cn/57709429/s/1599607
2024-10-28 17:22:13 +08:00
wxg0103 1176029af3 fix: 修复数字类型输入框可以输入1-3的缺陷
--bug=1048215 --user=王孝刚 【应用】显示设置-图标默认位置输入框输入1-2提交后提示字段不能为空 https://www.tapd.cn/57709429/s/1599573
2024-10-28 17:21:53 +08:00
CaptainB e01bce1ddb fix: 添加模型时选择框里的模型按照名称排序
--bug=1048208 --user=刘瑞斌 优化:【系统管理-模型设置】添加模型,显示的供应商里列表和左边的供应商列表排序不一致 https://www.tapd.cn/57709429/s/1599397
2024-10-28 15:51:23 +08:00
shaohuzhang1 f3c84eeac2 fix: 修复下拉框字数太多,超出部分隐藏 2024-10-28 15:17:25 +08:00
wxg0103 8cc5f4b6ed refactor: 应用概览页显示设置页面样式优化
--bug=1048207 --user=王孝刚 【应用】应用概览页显示设置页面样式优化 https://www.tapd.cn/57709429/s/1599274
2024-10-28 15:04:16 +08:00
shaohuzhang1 ff164e60f6 fix: 修复模型添加参数,各个字段没有限制长度,并且在应用设置中显示样式错误 2024-10-28 14:19:10 +08:00
shaohuzhang1 292eb994bc fix: 修复模型参数,滑块类型参数,步长不能设置为0 2024-10-28 14:13:21 +08:00
shaohuzhang1 00f8645cd9 fix: 修复模型参数保存未校验 2024-10-28 14:03:28 +08:00
shaohuzhang1 5d726cf538 fix: 修复首次对话message大于1024报错 #1467 2024-10-28 13:47:57 +08:00
shaohuzhang1 a7b85143a1 fix: 修复表单构造器相关bug 2024-10-28 12:10:32 +08:00
wxg0103 ba37e62428 refactor: 优化样式 2024-10-28 11:39:55 +08:00
CaptainB da37338f7e fix: 修复豆包语音合成不能处理全字符文本的问题 2024-10-28 11:34:33 +08:00
wxg0103 4b9253f525 refactor: 优化样式 2024-10-28 10:54:09 +08:00
shaohuzhang1 42791d4c63 fix: 修复切换模型类型,基础模型没清空。
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-28 10:01:11 +08:00
CaptainB 71cc563d08 fix: 修复配置TTS参数不保存点取消后不能回显的问题
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
--bug=1048094 --user=刘瑞斌 【应用编排】进入编排页面,在语音模型参数设置弹框中点击取消后再次打开弹框,自定义字段值全部清空了 https://www.tapd.cn/57709429/s/1598751
2024-10-25 19:30:36 +08:00
shaohuzhang1 dbaafee224 fix: 修复知识库替换同步未对本地知识库进行覆盖 2024-10-25 19:12:39 +08:00
CaptainB f19a4d9bd2 fix: 修复配置TTS模型参数时必填项没有拦截的问题
--bug=1048068 --user=刘瑞斌 【应用】语音合成模型参数设置了必填,没有填写的参数的时候点确认没有提示 https://www.tapd.cn/57709429/s/1598728
2024-10-25 19:06:00 +08:00
wxg0103 8c2a95eec8 refactor: 优化样式 2024-10-25 18:48:50 +08:00
wxg0103 e6c271dd81 refactor: 优化样式 2024-10-25 18:48:50 +08:00
shaohuzhang1 cfbec5c44c fix: 修复工作流多路召回节点检索问题下拉框中有多个重复节点 2024-10-25 18:31:27 +08:00
CaptainB 8b71e031d3 fix: 修复高级应用调试时接口传入的参数不能填充默认值的问题
--bug=1047927 --user=刘瑞斌 【应用编排】接口传参必填项默认值不显示 https://www.tapd.cn/57709429/s/1598598
2024-10-25 18:20:15 +08:00
shaohuzhang1 6a85b2504b fix: 修复动态表单开关组件默认值初始化错误 2024-10-25 17:39:06 +08:00
wangdan-fit2cloud a6e475a148 fix: 调整修改密码逻辑(#1311) 2024-10-25 16:49:36 +08:00
shaohuzhang1 36efb58a05 feat: 大语言模型支持自定义参数入参 2024-10-25 16:41:22 +08:00
wxg0103 cbdf4b7fd9 refactor: 优化导出日志的时间格式
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1048109 --user=王孝刚 【应用】对话日志导出后,提问时间格式显示问题 https://www.tapd.cn/57709429/s/1598300
2024-10-25 15:31:52 +08:00
shaohuzhang1 da96ccfe43 fix: 修复json文本框未转换为对象问题 2024-10-25 14:38:21 +08:00
wxg0103 76138dfcd6 fix: 修复前端校验 2024-10-25 11:22:32 +08:00
wxg0103 9e9a8de1c8 fix: 修复密钥弹窗回车会重新开一个页面的缺陷
--bug=1048069 --user=王孝刚 【应用编排】-浮窗模式输入验证密码后 回车,会多打开一个页面 https://www.tapd.cn/57709429/s/1597919
2024-10-25 11:21:55 +08:00
wxg0103 d383a51616 style: 优化样式 2024-10-25 10:46:58 +08:00
wangdan-fit2cloud a9cdf86451 fix: 修复历史版本问题 2024-10-25 10:36:41 +08:00
CaptainB a46cf1c18b fix: 修复语音模型传入不正确参数报错的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-24 21:35:30 +08:00
shaohuzhang1 a0ad4c911c fix: 添加JSON文本框 2024-10-24 19:07:59 +08:00
wxg0103 823bd9f779 refactor: 优化提示信息
--bug=1048014 --user=王孝刚 【登录认证】用户管理禁用飞书用户登录,扫码后还可继续登录 https://www.tapd.cn/57709429/s/1597732
2024-10-24 18:33:15 +08:00
wxg0103 8c7d84d79d style: 修改前端样式 2024-10-24 18:17:57 +08:00
CaptainB 6df7d2d965 refactor: xinference 支持手动输入语音模型 2024-10-24 17:40:58 +08:00
wxg0103 0ddd745e09 refactor: 优化前端显示
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-24 14:34:51 +08:00
CaptainB cfc77b54bb chore: 修改分类在线模型改成公有模型
--bug=1047946 --user=刘瑞斌 【模型管理】- 文案调整:在线模型修改为:公有模型 , 公有模型/私有模型分类 更合适一些。 https://www.tapd.cn/57709429/s/1597118
2024-10-24 11:21:20 +08:00
CaptainB 76f63642e5 fix: 修复导入csv空行没有过滤的问题
--bug=1047841 --user=刘瑞斌 【知识库】上传csv格式的表格模版,第一行标题导入后分段显示不全 https://www.tapd.cn/57709429/s/1597113
2024-10-24 11:13:26 +08:00
shaohuzhang1 bb4db6571b feat: 嵌入图标位置设置 2024-10-24 11:11:06 +08:00
wxg0103 f505813950 refactor: 优化前端显示 2024-10-24 10:56:02 +08:00
shaohuzhang1 434db5a900 fix: 修复参数设置页面,回显问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-23 19:20:09 +08:00
wxg0103 c9f6941b9a refactor: 优化代码 2024-10-23 19:03:40 +08:00
wxg0103 fa2b9281fb refactor: 优化代码 2024-10-23 18:32:26 +08:00
wangdan-fit2cloud 888ba752d3 fix: 设置小助手主题色问题修复 2024-10-23 18:17:30 +08:00
wxg0103 3eb944300d fix: 修复应用开启公开访问链失败的缺陷
--bug=1047920 --user=王孝刚 【应用】应用概览页面-关闭/开启公开访问链接 提示异常 https://www.tapd.cn/57709429/s/1596807
2024-10-23 17:57:01 +08:00
wangdan-fit2cloud 86c5d65ca1 feat: 显示设置 2024-10-23 17:31:28 +08:00
wangdan-fit2cloud 79f13a1683 feat: 显示设置 2024-10-23 17:31:28 +08:00
shaohuzhang1 36998c804e
feat: 工作流版本管理 (#1386) 2024-10-23 17:01:19 +08:00
CaptainB 0c6e4b73b8 fix: 修复选择变量时没显示变量名的问题 2024-10-23 16:44:22 +08:00
CaptainB ee9fb8be95 style: 选择模型时tooltip固定宽度
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1047456 --user=刘瑞斌 【系统管理】模型设置-添加Xorbits Inferences模型-基础模型的提示信息超长显示被截断 https://www.tapd.cn/57709429/s/1596365
2024-10-23 14:24:30 +08:00
shaohuzhang1 1f616d1d1d fix: 修复演示页面加载出错 2024-10-23 13:34:36 +08:00
CaptainB 245410c149 fix: 保留上次选择的模型和提示词
--bug=1047752 --user=刘瑞斌 【应用】-生成关联问题设置模型和提示词后,再次点击生成关联问题,默认显示用户上次设置的模型和提示词。 https://www.tapd.cn/57709429/s/1596140
2024-10-23 13:30:35 +08:00
CaptainB b14971e79d fix: 添加参数时默认选中文本框
--bug=1047782 --user=刘瑞斌 【应用编排】-用户输入-添加参数时组件类型选择下拉选项,默认显示一个选项值 https://www.tapd.cn/57709429/s/1596098
2024-10-23 10:38:09 +08:00
maninhill c9b1520947
chore: Update README.md (#1435) 2024-10-23 09:14:22 +08:00
CaptainB 2de52a3cfa fix: 修复高级应用用户变量表头展示顺序问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1047783 --user=刘瑞斌 【应用编排】-用户输入 参数表中,参数字段放在显示名称前面。 https://www.tapd.cn/57709429/s/1595946
2024-10-22 21:03:42 +08:00
shaohuzhang1 2272e0b1cf fix: 修复工作流接口传参历史数据兼容 2024-10-22 20:02:01 +08:00
shaohuzhang1 fc337cf6ef fix: 修复腾讯云向量化失败 2024-10-22 18:56:18 +08:00
shaohuzhang1 aeef9c7714
fix: 修复对话校验错误 (#1432) 2024-10-22 18:46:17 +08:00
shaohuzhang1 0440d68bf2
fix: 修复对话框秘钥校验无法弹出 (#1431) 2024-10-22 18:40:24 +08:00
shaohuzhang1 23c7269231
refactor: 对话秘钥校验 (#1430) 2024-10-22 18:29:13 +08:00
wxg0103 5973957037 fix: 修复license校验问题 2024-10-22 17:55:08 +08:00
wxg0103 f5fcc01113 fix: 修复豆包智能体对话报错的缺陷
--bug=1047570 --user=王孝刚 【github#1374】【大模型】豆包模型对接企业微信,可以正常询问问题。对接豆包智能体大模型,在企业微信询问问题,后台日志报错 https://www.tapd.cn/57709429/s/1595490
2024-10-22 14:59:41 +08:00
wxg0103 723b8b5b02 style: 优化样式
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-21 18:59:41 +08:00
shaohuzhang1 cfbb7417ee
fix: 修复节点串行执行,日志显示不全 (#1419) 2024-10-21 18:16:00 +08:00
shaohuzhang1 b96931873c fix: 修复工作流节点错误无法在详情里面显示 2024-10-21 16:04:50 +08:00
shaohuzhang1 c211702c4c fix: 修复文件缓存timeout错误 2024-10-21 15:22:11 +08:00
shaohuzhang1 00d31f0fdd refactor: 重构动态表单收集框回显逻辑 2024-10-21 14:26:12 +08:00
shaohuzhang1 de388858f8 fix: 修复动态表单时间选择集无法回显 2024-10-21 13:53:59 +08:00
CaptainB a1484474c8 refactor: 高级应用区分用户输入和接口传入的参数
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-21 12:50:13 +08:00
shaohuzhang1 26906df48a feat: 动态表单收集添加日期格式 2024-10-21 11:56:55 +08:00
CaptainB fa17d96969 refactor: 高级应用区分用户输入和接口传入的参数
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-10-18 21:50:29 +08:00
shaohuzhang1 ad6d617caa refactor: 重构校验
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-18 18:42:59 +08:00
wxg0103 d5bbf48d01 style: 优化样式 2024-10-18 15:51:03 +08:00
CaptainB 2d7e00031e style: 修复el-form-item label样式没生效的问题 2024-10-18 15:43:37 +08:00
shaohuzhang1 88bf5c25d2 fix: 修复应用编排调试应用,问题优化节点报错 2024-10-18 14:58:37 +08:00
shaohuzhang1 c2564a47bd fix: 修复应用编排添加自定义函数后报错 2024-10-18 14:38:33 +08:00
CaptainB 68eb21b556 refactor: 配置TTS参数支持试听功能 2024-10-18 14:34:05 +08:00
shaohuzhang1 dead7e8da3 feat: 支持腾讯混元向量模型 2024-10-18 13:59:05 +08:00
wxg0103 6618c6baf3 feat: aws向量模型 2024-10-18 12:27:34 +08:00
CaptainB cb3c064463 fix: 修复vllm模型不能正常生成问题的bug 2024-10-18 11:56:26 +08:00
shaohuzhang1 12d348439c restyle: 嵌入图标
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-10-17 17:57:28 +08:00
shaohuzhang1 73121a0cd1 fix: 修复模型key未进行加密 2024-10-17 17:51:31 +08:00
shaohuzhang1 d6915f84b9 feat: 支持百度千帆向量模型 2024-10-17 17:45:13 +08:00
shaohuzhang1 f85ce4a745 feat: 支持讯飞向量模型 2024-10-17 16:37:39 +08:00
wangdan-fit2cloud 97cfd60346 perf: 输入密码打开链接对话框样式优化 2024-10-17 16:21:46 +08:00
wangdan-fit2cloud a242242d49 perf: 密码验证样式优化 2024-10-17 16:18:43 +08:00
shaohuzhang1 01e775d579 feat: 支持阿里云百炼向量模型 2024-10-17 15:12:37 +08:00
wxg0103 8c4fb7968d fix: 修复xinference模型创建失败的缺陷
https://github.com/1Panel-dev/MaxKB/issues/1389
2024-10-17 13:54:55 +08:00
wxg0103 735b7c7a22 refactor: 优化代码
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-16 18:56:54 +08:00
CaptainB 5a9c92b915 style: 浏览器播放的语音不展示设置
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-16 17:26:50 +08:00
wangdan-fit2cloud 226cfc440f perf: 优化模型设置样式 2024-10-16 17:08:38 +08:00
wxg0103 60cccf01a3 feat: 对话日志增加定时清理 2024-10-16 16:49:48 +08:00
CaptainB 47873f83f8 refactor: 模型设置支持配置参数 2024-10-16 16:35:05 +08:00
CaptainB 5cf1c20022 refactor: 模型设置支持配置参数 2024-10-16 15:20:04 +08:00
Henry-Shaw 33d63c8efe
fix: 修复知识库上传旧版本docx文件后,图片未正常识别导入的问题 (#1382) 2024-10-16 14:39:52 +08:00
CaptainB 45e9b9120b chore: 修复前端编译错误 2024-10-16 14:32:33 +08:00
CaptainB 04ef6b53d1 refactor: 应用设置支持配置TTS参数 2024-10-16 14:25:09 +08:00
CaptainB 084f8503e7 refactor: 选择模型时支持按照模型类型筛选 2024-10-16 12:19:57 +08:00
CaptainB 67f3ec34a1 refactor: 模型设置支持配置参数
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-15 21:22:34 +08:00
wxg0103 3b995d34eb feat: 对话日志支持自定义时间 2024-10-15 18:47:41 +08:00
shaohuzhang1 451be0c81c feat: 高级编排检索结果字符串添加标题字段
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-15 16:18:21 +08:00
shaohuzhang1 464aa13d2e feat: 应用编排-添加组件支持搜索 2024-10-15 15:58:45 +08:00
shaohuzhang1 9b44c9a05a fix: 修复excel导出内容有特殊字符出错 2024-10-15 14:01:43 +08:00
CaptainB 54695eff98 refactor: 模型设置支持配置参数 2024-10-15 11:12:18 +08:00
wxg0103 05c40c3ea6 fix: 修复前端打包报错的缺陷
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-14 18:49:33 +08:00
wxg0103 7a0f15b4e4 feat: 访问限制中新增身份验证设置 2024-10-14 17:34:56 +08:00
wangdan-fit2cloud aa8e68a688 feat: 扫码登陆功能
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-14 11:44:20 +08:00
zhangshaohu 2e7b31dc3c feat: 新增动态表单收集器
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-13 20:05:50 +08:00
shaohuzhang1 2e331dcf56
feat: 工作流编排支持并行 #1154 (#1362)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-13 12:00:13 +08:00
CaptainB 277e13513f chore: 修复前端编译错误
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-12 12:10:43 +08:00
CaptainB eb6a8eec32 refactor: 优化左侧显示模型 2024-10-12 11:41:56 +08:00
CaptainB 5f0bc2401e refactor: 查询模型优化 2024-10-12 10:51:56 +08:00
CaptainB 2f8aa5e5fa refactor: 优化模型设置 2024-10-12 10:51:56 +08:00
wangdan-fit2cloud 2ed3512294 perf: 优化文案
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-11 11:09:56 +08:00
CaptainB 1802b58a74 feat: 增加xinference语音模型
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-10 13:47:02 +08:00
CaptainB 68a0098445 chore: 取消录音时控制台的日志
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-10 10:51:34 +08:00
CaptainB e253637ae3 feat: 增加阿里百炼语音模型
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-10-09 21:19:15 +08:00
CaptainB bb6fd01200 feat: 生成关联问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--story=1016225 --user=刘瑞斌 【北区】在现有的分段基础上,加个 「生成问题」 ,支持调用大模型 生成问题并关联到分段。 https://www.tapd.cn/57709429/s/1589572
2024-10-09 17:46:33 +08:00
guanguangpeng ccc0be788a fix: 修复 XInference 供应商加载模型时的未认证导致 API 域名无效的问题 2024-10-09 17:41:40 +08:00
teamclouday e34f4074fe Update .gitignore 2024-10-09 17:18:16 +08:00
wangdan-fit2cloud dc328c8ea2 feat:【应用】关联知识库增加搜索框 2024-10-09 16:29:23 +08:00
wangdan-fit2cloud 8ebce16a9c feat: 【团队管理】权限增加全选功能 2024-10-09 14:34:10 +08:00
wangdan-fit2cloud 0b63d86a70 fix: 修改BaseUrl非点击 2024-10-09 14:34:10 +08:00
shaohuzhang1 2c3fecf1cc fix: 修复代码调试 调试状态错误
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-10-08 18:30:18 +08:00
shaohuzhang1 b4875fd496 fix: 修复打包失败 2024-10-08 17:23:26 +08:00
shaohuzhang1 3a7e9a3cea feat: 支持函数库脚本代码校验 2024-10-08 17:00:37 +08:00
maninhill 7070334e86
chore: Update README.md (#1325)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-10-04 10:46:34 +08:00
maninhill 98e8430a37
chore: Update README.md (#1324) 2024-10-04 10:45:16 +08:00
maninhill 7116d4e01f
chore: Update README.md (#1323) 2024-10-04 10:38:42 +08:00
shaohuzhang1 81ffe59c9b fix: 修复aws 在使用anthropic供应商模型时报错
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-09-29 18:59:37 +08:00
shaohuzhang1 9aeb68c402 fix: 修复段落过长导出知识库报错 2024-09-29 16:04:32 +08:00
wangdan-fit2cloud 26a551bd49 fix: 修复关联知识库名称显示不全问题(#1210) 2024-09-29 00:27:17 -07:00
wangdan-fit2cloud 83f5ca786e fix: 修复弹出提示框文字颜色问题 2024-09-29 00:27:17 -07:00
shaohuzhang1 b97728990f fix: 修复工作流调试页面选择下拉框参数,调试框被关掉错误 2024-09-29 13:45:21 +08:00
shaohuzhang1 b11ba9065a build: 删除无用依赖包
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-29 11:16:27 +08:00
CaptainB 9b208f6abe fix: 修复前端obj为null的时候导致页面卡顿的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-27 17:49:15 +08:00
wxg0103 f869fc5f26 refactor: 优化aws大模型的参数 2024-09-27 15:15:31 +08:00
shaohuzhang1 c78f216102 fix: 添加组件函数库滚动条无法滚动
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-09-26 18:50:05 +08:00
shaohuzhang1 20db7f2b6a fix: 修复旧数据,嵌入脚本报错
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-26 16:48:15 +08:00
shaohuzhang1 d9ba88411f feat: 更换阿里云百炼模型图标 2024-09-26 16:33:08 +08:00
CaptainB 2653c75f21 build: sandbox权限限制禁止向/tmp写入 2024-09-26 16:23:39 +08:00
shaohuzhang1 677ce46b49 build: 屏蔽敏感环境变量 2024-09-26 16:23:39 +08:00
CaptainB 52e883c65c build: sandbox权限限制,/opt/maxkb/app 目录下的文件只能读取自己的 /opt/maxkb/app/sandbox 2024-09-26 16:23:39 +08:00
wangdan-fit2cloud fb38f94d61 fix: 修复函数库运行结果样式问题 2024-09-26 16:05:29 +08:00
wangdan-fit2cloud 9112dd5b45 perf: 优化应用概览页面 2024-09-26 15:00:22 +08:00
shaohuzhang1 af274fb545 fix: 修复图表渲染宽高不生效问题 2024-09-26 14:32:57 +08:00
shaohuzhang1 f931cc7f49 fix: 工作流基础节点宽度加宽 2024-09-26 13:52:45 +08:00
shaohuzhang1 5a986877d0 fix: 修复问题过长openai应用接口错误 2024-09-26 13:25:07 +08:00
liqiang-fit2cloud 2ce8798d62 docs: Update README.md. 2024-09-26 11:54:31 +08:00
wangdan-fit2cloud a3dce84180 perf: 修复删除API Key文案错误 2024-09-26 11:10:26 +08:00
wangdan-fit2cloud d0e67d2983 perf: 优化会话框自适应宽度问题 2024-09-26 10:55:17 +08:00
shaohuzhang1 95584496fc fix: 修复无法无法使用echarts实例 2024-09-26 10:47:11 +08:00
王丹 9d670c44d4 fix: 修复创建函数问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-26 00:03:16 +08:00
shaohuzhang1 e8480013ee fix: 修复创建问题长度为256 2024-09-25 18:36:39 +08:00
shaohuzhang1 4bdd64a480 fix: 修复【应用编排】判断器点击右侧+添加组件后,连线有点长,建议调整一下组件距离 2024-09-25 18:31:15 +08:00
wangdan-fit2cloud 2fe85bef5e perf: 对话框宽度自适应 2024-09-25 18:20:02 +08:00
wangdan-fit2cloud 8be52ac966 fix: 修复创建应用点回车打开页面问题 2024-09-25 18:05:37 +08:00
wxg0103 e51a08ac4e refactor: 优化模型列表 2024-09-25 17:52:16 +08:00
shaohuzhang1 2789dbeff4 fix: 修复嵌入对话无法使用语音 2024-09-25 17:43:36 +08:00
wangdan-fit2cloud fb6358cd38 fix: 优化弹出层关闭问题 2024-09-25 17:42:20 +08:00
wangdan-fit2cloud f3f9e18088 perf: 函数库优化禁用状态 2024-09-25 17:30:12 +08:00
shaohuzhang1 8c32125c56 fix: 修复【API 接口】应用对话接口 stream false ,提问报错
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-25 17:22:34 +08:00
shaohuzhang1 583a9c62d3 style: 【应用编排】-优化基本信息节点宽度 2024-09-25 16:54:16 +08:00
shaohuzhang1 6e366c70b5 fix: 修复建议应用问题优化无效 2024-09-25 16:20:17 +08:00
CaptainB e16e827028 fix: 处理文本前后的空白字符 2024-09-25 16:00:30 +08:00
wangdan-fit2cloud 69a0ce74b6 fix: 修复函数库编辑权限 2024-09-25 15:27:15 +08:00
wangdan-fit2cloud 636b60acfa fix: 公用函数库编辑权限修复 2024-09-25 15:23:26 +08:00
shaohuzhang1 43af7b9a89 feat: 函数库列表接口添加user_id属性 2024-09-25 15:18:59 +08:00
wangdan-fit2cloud 052b4008e9 fix: 文档上传过滤空文件 2024-09-25 14:21:50 +08:00
wangdan-fit2cloud 794fd5af79 perf: 上传文档修改文案 2024-09-25 14:12:15 +08:00
wangdan-fit2cloud 978bb7f64e fix: 修复关联分段问题 2024-09-25 11:17:50 +08:00
wangdan-fit2cloud daaab3a641 fix: 修复前端错误 2024-09-25 10:13:14 +08:00
wangdan-fit2cloud f576065052 fix: 角色设定输入框优化 2024-09-25 10:09:31 +08:00
wangdan-fit2cloud 606f900ba2 fix: Score修改默认值 2024-09-25 09:58:16 +08:00
CaptainB 8af69fedd7 chore: 全局变量支持数字字母下划线命名
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-24 22:12:35 +08:00
wangdan-fit2cloud d4419d9ed5 perf: 优化弹出层 2024-09-24 19:01:43 +08:00
CaptainB a9d9e293a7 fix: 豆包模型按行发送接收,合并mp3后返回前端 2024-09-24 17:42:50 +08:00
wxg0103 4981b15757 fix: 修复高级编排没有记录对话日志的缺陷
--bug=1046962 --user=王孝刚 【应用】接入第三方应用后,在第三方应用里的对话信息没有存到对话记录里 https://www.tapd.cn/57709429/s/1585116
2024-09-24 17:29:40 +08:00
wangdan-fit2cloud bc28cc0ac7 perf: 优化播放图标 2024-09-24 16:57:03 +08:00
wxg0103 24d099d078 refactor: 优化对话记录排序
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-24 16:52:42 +08:00
CaptainB 791c94724c refactor: 浏览器播放的语音支持暂停和继续播放 2024-09-24 15:53:54 +08:00
wangdan-fit2cloud e69b74ec86 perf:【应用编排】变量设置优化 2024-09-24 14:35:48 +08:00
CaptainB 6cacb5be71 fix: 处理不规范的pdf中前言部分没在目录中标识出来,导致不能正常识别的问题 2024-09-24 12:06:51 +08:00
wangdan-fit2cloud d959bcd26c fix: 【团队成员】左侧内容超出问题优化(#1199) 2024-09-23 20:43:38 -07:00
CaptainB 9abe823b79 fix: 公开链接显示接口输入类型的变量
--bug=1047029 --user=刘瑞斌 【应用编排】- 公开访问连接中未自动生成 接口传参的变量 https://www.tapd.cn/57709429/s/1584536
2024-09-24 11:32:38 +08:00
wangdan-fit2cloud ce464c5ddf fix: 公用函数禁止编辑 2024-09-24 10:42:22 +08:00
CaptainB acc43df3a3 fix: 修复返回为空的文本不能播放默认提示的问题
--bug=1047018 --user=刘瑞斌 【应用】应用对话没有输出内容时,点击播放按钮console有报错 https://www.tapd.cn/57709429/s/1584399
2024-09-24 10:22:51 +08:00
CaptainB 59dc727319 fix: 修复全局变量名称出现特殊字符的问题
--bug=1047017 --user=刘瑞斌 【应用编排】添加全局变量,变量应该限制字符类型,不然引用会报错 https://www.tapd.cn/57709429/s/1584342
2024-09-24 10:01:24 +08:00
wxg0103 0f1174a437 fix: 去掉不主流的模型 2024-09-24 09:19:18 +08:00
wangdan-fit2cloud f7902aaf35 perf: 修改文案
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-23 19:12:14 +08:00
wangdan-fit2cloud ba1f0b557e perf: 对话日志修改内容改为markdown编辑器 2024-09-23 19:12:14 +08:00
liqiang-fit2cloud d6c369553f build: Update GitHub Action. 2024-09-23 18:37:05 +08:00
shaohuzhang1 11bbbf6469 fix: 【应用】-浮窗框模式,拖拽浮窗入口图标, 图标会变大 2024-09-23 18:27:43 +08:00
wangdan-fit2cloud 8e1f676d82 perf: 应用设置增加提示词 2024-09-23 17:53:33 +08:00
shaohuzhang1 9c26d551a9 fix: 修复简单应用,修改问题优化提示词没生效 2024-09-23 17:36:31 +08:00
shaohuzhang1 90d59301fa fix: 修复向量模型服务未起,重新向量问答一直显示排队中。 2024-09-23 17:28:26 +08:00
shaohuzhang1 f4a3883be2 feat: 工作流处理默认参数 2024-09-23 16:44:51 +08:00
shaohuzhang1 264a7309f7 fix: 修复【应用编排】多路召回设置了引用分段5个,但是实际还是引用了3个
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-23 15:30:51 +08:00
shaohuzhang1 2d8422292c fix: 【模型管理】新建或编辑模型时,API key为空时提示问题 2024-09-23 15:15:06 +08:00
shaohuzhang1 034c2a86d3 fix: 修复使用应用编排的baseurl创建openai模型报错 2024-09-23 14:56:57 +08:00
wangdan-fit2cloud 7d1c19cfbe fix: 修复社区版不显示头部图标问题 2024-09-23 14:55:30 +08:00
shaohuzhang1 b9e4080d03 fix: 修复函数禁用后,在工作流中应该节点状态应该改为不可用 2024-09-23 14:38:57 +08:00
wangdan-fit2cloud b95dc9b0c7 perf: 优化默认值字段 2024-09-23 14:36:51 +08:00
CaptainB 6bce4dd7e2 fix: 修复被关联的语音模型可以直接删除的问题
--bug=1046965 --user=刘瑞斌 【模型管理】OpenAI语音输入模型在简单应用中使用,模型管理中还可删除 https://www.tapd.cn/57709429/s/1583615
2024-09-23 14:22:46 +08:00
shaohuzhang1 02da8daa46 chore: 优化提示 2024-09-23 11:19:06 +08:00
wangdan-fit2cloud abfd955271 fix: 修复提示词必填没有提示问题 2024-09-23 11:10:51 +08:00
CaptainB 72fd632eca fix: 修复没有选择语音模型,点发布不能拦截的问题
--bug=1046729 --user=刘瑞斌 【应用】应用语音播放选择模型播放后,不选择具体的模型,点击播放按钮没有反应 https://www.tapd.cn/57709429/s/1583384
2024-09-23 10:50:03 +08:00
shaohuzhang1 1321ed31ee fix: reranker添加检索内容数据 2024-09-23 10:33:49 +08:00
CaptainB 2dc06191ca fix: 修复接口传入类型的参数校验必填项的问题
--bug=1046919 --user=刘瑞斌 【应用编排】接口传参类型的全局变量,设置了非必填后提问还是会提示需要填写 https://www.tapd.cn/57709429/s/1583325
2024-09-23 10:31:01 +08:00
wangdan-fit2cloud cc0433609d fix: 执行详情增加检索内容 2024-09-23 10:16:44 +08:00
wangdan-fit2cloud 85fed1b7de perf: 基本组件 2024-09-23 10:01:31 +08:00
B. Zach d855aaac9b
Added English Localization (#1251)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
* Create README_EN.MD

English Readme

* Rename README.md to README_ZH.md

* Create README.md

* Update README.md

* Update README.md

* Update README.md localization

Respecting the project creator I left the main Readme as Chinese. English speakers can click the button for English

* Update README.md localization

Respecting the project creator I left the main Readme as Chinese. English speakers can click the button for English

* Delete README_ZH.md

ZH has been renamed to main README and EN had been added as a button

* Rename README_EN.MD to README_EN.md

blob error
2024-09-22 21:02:56 +08:00
CaptainB 67204f060b chore: 修复ts错误
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-09-21 10:52:05 +08:00
CaptainB e99a2fc53e chore: fix typo.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-20 23:53:10 +08:00
CaptainB 9ed0fd0799 style: 样式自动折行 2024-09-20 23:51:58 +08:00
CaptainB 62bb085b8b refactor: 嵌入第三方增加url参数 2024-09-20 23:47:06 +08:00
CaptainB 453c18d954 refactor: 全局变量增加默认值 2024-09-20 23:47:06 +08:00
shaohuzhang1 af8a083941 fix: 修复【应用】简单应用设置历史聊天记录,输入小数或者超大的数字,提示信息错误
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-20 20:27:00 +08:00
shaohuzhang1 885ab5410a fix: 修复【知识库】语雀导出的word,导入知识库是空白的 #1148 2024-09-20 19:37:22 +08:00
shaohuzhang1 b8d1512eca fix: 修复本地模型加载失败时,错误信息未输出 2024-09-20 19:28:05 +08:00
shaohuzhang1 a980604617 fix: 修复【应用编排】应用编排中引用函数,函数被禁用后应用里还可以正常执行 2024-09-20 19:25:11 +08:00
wxg0103 19d48693ec refactor: 优化模型最大tokens 2024-09-20 19:12:36 +08:00
shaohuzhang1 1247d32c10 fix: 修复【应用编排】添加不是自己创建的公用函数失败 2024-09-20 19:05:19 +08:00
shaohuzhang1 49efb185e0 fix: 修复【模型设置】使用应用baseurl创建模型报错 2024-09-20 18:48:10 +08:00
shaohuzhang1 75430ee03b feat: 修改默认嵌入图标 2024-09-20 18:28:27 +08:00
wangdan-fit2cloud 03275469c2 fix: 修复语音播放无id问题 2024-09-20 18:11:11 +08:00
CaptainB 35f75727be fix: 修复对话日志里的语音不能播放的问题
--bug=1046835 --user=刘瑞斌 【应用】应用对话日志中,点击播放按钮没有反应 https://www.tapd.cn/57709429/s/1582747
2024-09-20 17:40:31 +08:00
CaptainB 281df5b397 fix: 处理调试时获取不到appid的问题 2024-09-20 17:40:18 +08:00
shaohuzhang1 581440e056
fix: 修复简易模型无法显示浮窗 (#1240) 2024-09-20 17:16:07 +08:00
shaohuzhang1 1f26744cef
feat: 批量关联问题 (#1235) 2024-09-20 17:07:52 +08:00
shaohuzhang1 808941ba70 fix: 修复创建问题,输入超长字符报错 2024-09-20 16:30:47 +08:00
shaohuzhang1 d975ee6027 fix: 修复忘记密码、修改密码邮件里MaxKB相关字样 2024-09-20 16:27:14 +08:00
shaohuzhang1 fda0bcb5d6 fix: 修复知识库导出后再导入,有一部分内容会丢失 2024-09-20 16:20:08 +08:00
shaohuzhang1 9fc2d4a2e1 fix: 修复混元大模型使用system角色报错 2024-09-20 16:04:40 +08:00
wangdan-fit2cloud 3cce902a7a feat: 部分样式优化 2024-09-20 15:20:39 +08:00
CaptainB 1ad5573497 fix: 修复豆包模型配置校验失败的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-20 12:19:24 +08:00
CaptainB a665a7f718 fix: 修复接口传入类型参数没有输入时,历史会话重新生成没有拦截的问题 2024-09-20 12:14:24 +08:00
CaptainB b7a62ea147 chore: 豆包模型配置label修改 2024-09-20 12:02:16 +08:00
CaptainB a2aab8df7e fix: 处理opanai语音识别报错的问题
--bug=1046791 --user=刘瑞斌 【应用】使用 openai 语音输入模型、输出模型进行输入输出报错 https://www.tapd.cn/57709429/s/1582133
2024-09-20 11:14:52 +08:00
shaohuzhang1 6d39cd8aff fix: 修复项目重启后,文档状态错误 2024-09-20 11:06:52 +08:00
CaptainB 14bf09c4fe refactor: 增加应用不选择语音模型报错提示
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1046729 --user=刘瑞斌 【应用】应用语音播放选择模型播放后,不选择具体的模型,点击播放按钮没有反应 https://www.tapd.cn/57709429/s/1581681
2024-09-19 18:23:26 +08:00
CaptainB dc71d55d49 fix: 修复TTS播放语音不能暂停的问题
--bug=1046734 --user=刘瑞斌 【应用】选择语音输出模型,无法暂停播放 https://www.tapd.cn/57709429/s/1581642
2024-09-19 17:57:22 +08:00
wangdan-fit2cloud 6418527a04 perf: 多路召回相似度优化成Score 2024-09-19 17:48:28 +08:00
wangdan-fit2cloud 9fcf8ec8c3 perf: 图标优化 2024-09-19 02:31:42 -07:00
CaptainB a1ae3283ec refactor: 语音播放时将内容处理成纯文本 2024-09-19 17:20:01 +08:00
shaohuzhang1 f2dae7b3e6 feat: 增加应用profile 设置参数 2024-09-19 17:13:53 +08:00
wangdan-fit2cloud 204676fa67 fix: 修复图标问题 2024-09-19 16:46:54 +08:00
wangdan-fit2cloud 03b3c6bfca fix: 引用分段数字段错误问题 2024-09-19 16:46:54 +08:00
CaptainB 55af43d16a chore: fix typo. 2024-09-19 16:44:32 +08:00
wxg0103 4c28ff12f5 refactor: 优化代码 2024-09-19 16:03:51 +08:00
wangdan-fit2cloud 780a44f368 perf: 【应用】概览访问凭证优化 2024-09-19 00:45:47 -07:00
wangdan-fit2cloud 7cb355777c fix: 修复调试不能播放问题 2024-09-19 14:58:42 +08:00
shaohuzhang1 4ad2ec5268 fix: 修复多路召回前端校验错误 2024-09-19 14:48:53 +08:00
CaptainB b99df0d27c chore: 修复控制台报错的问题 2024-09-19 12:32:58 +08:00
CaptainB e2799b6c17 fix: 修复语音播放没选中浏览器播放为默认值的问题
--bug=1046703 --user=刘瑞斌 【应用编排】应用编排开启语音播放,默认应该选中浏览器播放 https://www.tapd.cn/57709429/s/1580874
2024-09-19 12:30:12 +08:00
CaptainB d0b4d5d3b4 fix: 修复语音播放没选中浏览器播放为默认值的问题
--bug=1046703 --user=刘瑞斌 【应用编排】应用编排开启语音播放,默认应该选中浏览器播放 https://www.tapd.cn/57709429/s/1580874
2024-09-19 12:27:32 +08:00
wxg0103 88f6e336e7 fix: 解决非流式返回报错的缺陷
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-19 11:43:15 +08:00
CaptainB 90a7a9d085 refactor: 增加弹框提示 2024-09-19 10:13:36 +08:00
wangdan-fit2cloud cb13c9dd3b fix: 【应用编排】语音输入检测没有录音权限时弹出提示
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-18 04:10:48 -07:00
wangdan-fit2cloud 53fb5ec70c perf: 优化文案 2024-09-18 04:10:48 -07:00
wxg0103 c1fb9346c2 refactor: 优化三方应用页面显示 2024-09-18 18:10:47 +08:00
shaohuzhang1 4d6833829e feat: reindex 2024-09-18 18:04:21 +08:00
wxg0103 a1a5a165bd refactor: 优化三方应用回调地址 2024-09-18 17:58:05 +08:00
CaptainB 91391b0354 fix: 修复历史数据没有展示变量值的问题
--bug=1046515 --user=刘瑞斌 【应用】查看历史对话,默认没有带变量值,点击重新生成答案会报错 https://www.tapd.cn/57709429/s/1579777
2024-09-18 16:21:39 +08:00
CaptainB bbeed0e276 refactor: 播放语音增加tts_type区分不同类型 2024-09-18 16:07:35 +08:00
wangdan-fit2cloud b2a8c039b4 perf: 优化markdown编辑器 2024-09-18 16:03:42 +08:00
wxg0103 9dd85accd5 refactor: 优化应用logo显示 2024-09-18 15:25:45 +08:00
liqiang-fit2cloud 47e24d87a6 Merge remote-tracking branch 'origin/main' 2024-09-18 14:56:55 +08:00
liqiang-fit2cloud 5eebf7462e build: add ca-certificates. 2024-09-18 14:56:41 +08:00
shaohuzhang1 f07f5ae804 feat: 工作流开始节点添加上下文,会话id参数 #1094 2024-09-18 13:56:06 +08:00
CaptainB 3e3b77e34d refactor: 处理纵向合并的单元格 2024-09-18 12:37:33 +08:00
wangdan-fit2cloud 45bf3477d1 perf: 优化专业版限制提示
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-18 11:03:04 +08:00
wangdan-fit2cloud 9561961d0f feat: 函数支持设置权限和应用显示开关 2024-09-17 19:38:52 -07:00
shaohuzhang1 c2217aa19e feat: 函数库添加权限 2024-09-17 19:38:52 -07:00
wxg0103 56853a140d refactor: 禁用回调地址 2024-09-18 10:01:58 +08:00
shaohuzhang1 5f0fea71d8
fix: 修复前端build错误 (#1198) 2024-09-18 10:00:33 +08:00
dependabot[bot] d62eab94fb
build(deps): update langchain requirement (#1196)
Updates the requirements on [langchain](https://github.com/langchain-ai/langchain) to permit the latest version.

Updates `langchain` to 0.2.16
- [Release notes](https://github.com/langchain-ai/langchain/releases)
- [Commits](https://github.com/langchain-ai/langchain/compare/langchain==0.2.3...langchain==0.2.16)

---
updated-dependencies:
- dependency-name: langchain
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-18 09:57:13 +08:00
wangdan-fit2cloud 7b9058b6a7 perf: 文字优化 2024-09-18 09:49:07 +08:00
wangdan-fit2cloud 8943a2849e fix: 优化语音播放展示 2024-09-18 09:44:33 +08:00
wangdan-fit2cloud 1aafa09fbb feat: 高级编排支持展开收起 2024-09-18 09:41:13 +08:00
wangdan-fit2cloud 3041fd1c30 fix: 优化样式
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-09-15 16:43:51 +08:00
wangdan-fit2cloud caa9ad63bd feat: 简易应用支持设置应用Logo 2024-09-15 00:45:20 -07:00
CaptainB f906efa9e2 refactor: 豆包接口校验发送demo验证
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-14 23:20:40 +08:00
CaptainB 467b864895 refactor: 讯飞接口校验发送demo验证 2024-09-14 23:20:40 +08:00
shaohuzhang1 b0f443f3d2
feat: 简易应用页面参数优化 (#1182) 2024-09-14 21:48:45 +08:00
wxg0103 0b64e7a56c refactor: 优化用户名校验逻辑
--story=1016296 --user=王孝刚 【系统管理】用户创建限制太过于严格,与某些用户/企业的习惯或要求不符合 https://www.tapd.cn/57709429/s/1579177
2024-09-14 18:54:40 +08:00
wxg0103 a873719a49 fix: 修复tokens描述错误的缺陷
--bug=1046202 --user=王孝刚 【github#1144】【应用】参数设置,输出最大tokens描述错误 https://www.tapd.cn/57709429/s/1579168
2024-09-14 18:37:21 +08:00
CaptainB 080ccd11c4 refactor: 调整采样率 2024-09-14 18:36:19 +08:00
CaptainB 3499332b74 fix: 及时更新流程图里的变量 2024-09-14 15:59:15 +08:00
liqiang-fit2cloud 61cf6a8fdd build: Update GitHub action.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-14 15:38:01 +08:00
liqiang-fit2cloud 43790e4ac2 build: Update GitHub action. 2024-09-14 15:35:59 +08:00
liqiang-fit2cloud 986ef16f88 build: Update GitHub action. 2024-09-14 15:34:21 +08:00
shaohuzhang1 1bc9f9f2b9
feat: 右侧点击展示菜单 (#1171) 2024-09-14 14:51:49 +08:00
wangdan-fit2cloud 2ea9e02b66 perf: 完善语音转文本 2024-09-14 11:17:14 +08:00
wangdan-fit2cloud 8145a54233 fix: 结果调试下拉框关闭问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-13 18:41:32 +08:00
wangdan-fit2cloud 9bb226da96 fix: 修复用户输入debug问题 2024-09-13 17:37:13 +08:00
wangdan-fit2cloud 8920b71867 perf: 优化用户输入样式 2024-09-13 17:26:42 +08:00
CaptainB 7c5fb47b75 revert: 去掉debug配置,不能区分调试和嵌入 2024-09-13 16:57:57 +08:00
CaptainB 398d8b3f19 refactor: 调试时展示所有的参数,嵌入后仅展示用户输入,接口输入需要写在url上 2024-09-13 16:37:24 +08:00
CaptainB d1f33d5bd3 fix: 快捷输入增加必填校验 2024-09-13 16:08:06 +08:00
CaptainB b5e6f07ada refactor: 接入时增加query参数 2024-09-13 16:08:06 +08:00
CaptainB 88b6d8b9d8 chore: 修改参数提示 2024-09-13 16:08:06 +08:00
wangdan-fit2cloud df1fd3f89e feat: 应用支持语音样式优化 2024-09-13 15:47:05 +08:00
CaptainB 22d08252c8 refactor: 处理接口传入和手动输入的参数
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-13 14:10:34 +08:00
CaptainB 7096075fff fix: 修复编写错误的字段名 2024-09-13 14:10:34 +08:00
shaohuzhang1 8dab247703 fix: 解决前端ts类型错误 2024-09-13 11:57:56 +08:00
shaohuzhang1 b8f387eb99 feat: 支持通过echarts_rander标签 渲染图表 2024-09-13 11:36:01 +08:00
wanghe 0eaa04e8a4
Update bug.yml
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-12 22:11:58 +08:00
shaohuzhang1 e9d3d86330 feat: 支持通过html_rander标签 支持script执行 2024-09-12 19:51:33 +08:00
shaohuzhang1 b3a302585c feat: 支持通过html_rander标签 对里面的html内容进行渲染 2024-09-12 18:09:01 +08:00
wangdan-fit2cloud e8e4db1e6d perf: 优化应用接入样式 2024-09-12 16:20:04 +08:00
wxg0103 a83a731b7b refactor: 优化页面 2024-09-12 16:02:27 +08:00
wangdan-fit2cloud a32d0983f1 fix: 修改执行详情中的多路召回展示 2024-09-12 15:38:39 +08:00
wangdan-fit2cloud ef900c4e01 feat: 执行详情增加多路召回 2024-09-12 15:14:03 +08:00
wangdan-fit2cloud 003f338a08 fix: 小助手不限制大小 2024-09-12 15:14:03 +08:00
shaohuzhang1 82b7e8d69e fix: 修复重排模型添加检索内容字段 2024-09-12 14:54:59 +08:00
wangdan-fit2cloud f388cb5695 feat: 执行详情增加多路召回 2024-09-12 14:23:27 +08:00
wangdan-fit2cloud 1e710b5ba0 perf: 多路召回优化图标 2024-09-12 14:23:27 +08:00
shaohuzhang1 989d0848c0 fix: 修复工作流中,函数库使用知识库检索参数错误 2024-09-12 14:14:16 +08:00
CaptainB 0d762821f7 chore: fix typo.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-12 13:26:59 +08:00
CaptainB d551462c05 refactor: 支持使用浏览器语音播放 2024-09-12 11:31:06 +08:00
shaohuzhang1 24291493d6 fix: 修复前端没有input_field_list报错 2024-09-12 11:03:09 +08:00
CaptainB 746f587698 fix: 表格数据区分xls和xlsx 2024-09-12 10:49:31 +08:00
wxg0103 c58635e7cc feat: 【应用】新增应用接入:企业微信、钉钉、公众号、飞书
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-11 19:38:30 +08:00
shaohuzhang1 b924958176 feat: 上传文档表格对支持xlsx文件单元格图片 2024-09-11 18:27:44 +08:00
CaptainB bec2ed8067 refactor: 支持使用浏览器语音播放 2024-09-11 16:12:14 +08:00
shaohuzhang1 37445762b2 feat: 上传文档qa问答对支持xlsx文件单元格图片 2024-09-11 15:55:29 +08:00
CaptainB 3c461b6a30 refactor: 执行详情显示全局变量
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-11 10:49:12 +08:00
shaohuzhang1 504e900edf feat: 支持xinference Rerank模型
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-10 19:01:33 +08:00
CaptainB d48b51c3e0 feat: 支持用户输入变量
--story=1016155 --user=刘瑞斌 【应用编排】-支持设置用户输入变量 https://www.tapd.cn/57709429/s/1576480
2024-09-10 18:39:10 +08:00
wangdan-fit2cloud ba023d20f0 feat: 增加文档筛选 2024-09-10 16:15:47 +08:00
wangdan-fit2cloud 689e74af4b perf: 更新slogan文案
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-10 10:39:22 +08:00
shaohuzhang1 277ed17f93 feat: 支持阿里百炼Rerank模型
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-09 18:47:02 +08:00
liqiang-fit2cloud 7e01c600ae build: Update GitHub action. 2024-09-09 15:18:54 +08:00
shaohuzhang1 f9a76d7948
feat: 支持openai接口 #353 (#1128) 2024-09-09 14:47:25 +08:00
CaptainB f882249216 fix: 修复高级模式下的stt调试 2024-09-09 13:34:58 +08:00
CaptainB 7380507b55 refactor: 查询profile时返回stt配置
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-09 11:24:48 +08:00
Tong Li eb81d6d010
update openai_model_provider.py (#1129)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
Co-authored-by: litongjava <litongjava@qq.com>
2024-09-08 13:38:38 +08:00
CaptainB 184e1927ce refactor: 调试语音输入和语音播放
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-09-06 19:09:01 +08:00
wangdan-fit2cloud 5b2a9d16e8 perf: 优化AI小助手宽屏下的样式 2024-09-06 19:00:13 +08:00
CaptainB 408a57afac chore: fix nodes not in workflow 2024-09-06 12:51:52 +08:00
CaptainB 70f44b990c refactor: 格式规范的pdf通过目录来分段 2024-09-06 10:56:27 +08:00
CaptainB c50da4ef46 refactor: 应用设置中配置语音输入和播放
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-09-05 16:47:34 +08:00
shaohuzhang1 38565aff11 fix: 修复对话中一定时间历史会话被清空 #1089 2024-09-05 15:39:50 +08:00
shaohuzhang1 3faba75d4d feat: 支持重排模型 2024-09-05 11:30:21 +08:00
CaptainB fcbfd8a07c refactor: 自动填充api_url
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-04 14:12:54 +08:00
CaptainB b8ba2458c0 fix: 修复wss链接的证书问题 2024-09-04 13:25:54 +08:00
CaptainB b500404a41 feat: 语音识别和语音合成 2024-09-04 12:23:08 +08:00
shaohuzhang1 88277c7aea Update README.md
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-03 21:03:17 +08:00
shaohuzhang1 f312d3e69e Update README.md 2024-09-03 20:57:20 +08:00
maninhill c8ef925176
chore: Update README.md (#1108) 2024-09-03 18:16:17 +08:00
liqiang-fit2cloud da6c1ce85c Merge remote-tracking branch 'origin/main'
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-03 15:28:21 +08:00
liqiang-fit2cloud 5f8a03d31e build: try to fix "Cannot allocate memory". 2024-09-03 15:26:31 +08:00
wangdan-fit2cloud 64b6e5bcad perf: 优化上传文档页面 2024-09-03 00:13:21 -07:00
wangdan-fit2cloud dfcb181bae feat: 增加导航拦设置功能
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-09-02 04:08:18 -07:00
liqiang-fit2cloud 3e1b6b1585 Revert "build: try to fix "Cannot allocate memory"."
This reverts commit fd3c936059.
2024-09-02 18:34:02 +08:00
liqiang-fit2cloud fd3c936059 build: try to fix "Cannot allocate memory". 2024-09-02 18:05:47 +08:00
Qiyuan Jiao 6274e5991b
fix typos (#1100) 2024-09-02 17:32:36 +08:00
wangdan-fit2cloud ca66fc99e5 fix: 修复Typos 2024-09-02 01:11:13 -07:00
wangdan-fit2cloud 78aa24460a feat: 外观设置增加自定义颜色 2024-09-02 01:11:13 -07:00
wxg0103 614f17b70c feat: 知识库列表增加筛选
--story=1016081 --user=王孝刚 【知识库】- 文档列表支持按文档状态、启用状态、命中处理方式进行筛选 https://www.tapd.cn/57709429/s/1571832
2024-08-30 18:45:56 +08:00
wangdan-fit2cloud 37f3a18968 perf: 优化关于页面 2024-08-30 17:32:20 +08:00
CaptainB 57b15a8a7f feat: 知识库支持上传csv和excel
--story=1016154 --user=刘瑞斌 【知识库】-支持上传表格类型文档(Excel/CSV)按行分段 https://www.tapd.cn/57709429/s/1567910
2024-08-30 15:46:20 +08:00
shaohuzhang1 3d1b3ea8d5 fix: 修复openai计算token错误
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-08-29 17:22:21 +08:00
CaptainB b0931c8612 ci: 增加辅助pip 2024-08-29 17:09:20 +08:00
Kris Chi a373cbb2c2 Remove useless console.log() 2024-08-29 15:56:02 +08:00
shaohuzhang1 644bb61c4e fix: 修改工作流中模型参数为非必填参数 2024-08-29 15:21:04 +08:00
shaohuzhang1 96ac12ea31 fix: 修复openai供应商计算tokens错误,修复旧版本应用编辑页面直接报错提示问题为必填参数错误 2024-08-29 15:11:09 +08:00
shaohuzhang1 b627b6638c fix: 修复工作流编排历史数据模型参数必填 2024-08-29 14:08:07 +08:00
wxg0103 c2622e4a5d fix: 修复模型计算tokens消耗报错的缺陷
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-29 12:37:01 +08:00
shaohuzhang1 83c91da117 feat: 分段接口添加认证 2024-08-29 10:42:01 +08:00
maninhill 57a4f564e7
chore: Update README.md (#1064) 2024-08-29 09:27:14 +08:00
shaohuzhang1 51a331592b Update README.md
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-28 19:35:33 +08:00
wangdan-fit2cloud b21a7c0498 fix: 修复上传文档后缀大小写问题 2024-08-28 19:17:47 +08:00
wangdan-fit2cloud a755a37a44 fix: 支持PDF大写后缀 2024-08-28 19:04:57 +08:00
maninhill 07555ec2c7
chore: Update README.md (#1060) 2024-08-28 16:42:30 +08:00
shaohuzhang1 55e3310a5f fix: 修复工作流函数节点滚动事件导致整个页面变大 2024-08-28 16:25:11 +08:00
shaohuzhang1 7c218284a1 fix: 修复画布事件冲突问题 2024-08-28 16:00:43 +08:00
wangdan-fit2cloud 64e2e63e92 fix: 画布增加保存成功提示 2024-08-28 15:24:07 +08:00
shaohuzhang1 0bd7fbb4fe fix: 修改kimi,azure供应商icon 2024-08-28 14:54:26 +08:00
wangdan-fit2cloud 20ba628291 fix: 修复批量设置相似度问题 2024-08-28 14:10:43 +08:00
shaohuzhang1 8a32bd337a feat: 添加maxkb启动命令
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-28 12:24:40 +08:00
shaohuzhang1 4d0f9baf90 fix: 修复工作流参数设置无效 2024-08-28 12:15:06 +08:00
wangdan-fit2cloud ffdd737733 fix: 修复高级编排组件样式问题 2024-08-28 11:34:00 +08:00
shaohuzhang1 37612cb88e fix: 修复智普供应商添加添加列表以外模型报错 2024-08-28 10:00:31 +08:00
zhangshaohu cfb6307293 fix: 修复新增段落迁移文档未索引
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-28 00:30:18 +08:00
zhangshaohu a53c6829c7 fix: 修复工作流函数节点输入参数类型未校验错误 2024-08-27 22:49:55 +08:00
zhangshaohu e6045f439e fix: 修复工作流函数节点输入参数类型未校验 2024-08-27 21:45:29 +08:00
wangdan-fit2cloud ba60b3c47c fix: 修复编辑器问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-27 16:57:53 +08:00
wangdan-fit2cloud 0152d01d37 fix: 修复高级编排函数组件样式问题 2024-08-27 16:54:40 +08:00
shaohuzhang1 4739dd55c5 fix: 修复应用复制,模型参数未复制 2024-08-27 15:12:49 +08:00
shaohuzhang1 b7ceac61ad fix: 修复应用授权给其他用户,其他用户编辑无法编辑模型 2024-08-27 15:07:51 +08:00
shaohuzhang1 d030a4c87c fix: 修复【应用编排】授权给其他用户的应用编排,其他用户查看的时候不应该提示函数不存在 2024-08-27 14:37:04 +08:00
shaohuzhang1 a9443a638c fix: 修复上传文档中后缀为PDF 不识别 2024-08-27 14:16:03 +08:00
wangdan-fit2cloud 3dfcb0ff9a perf: 调整高级编排不可用组件样式 2024-08-27 13:51:02 +08:00
shaohuzhang1 fada627b4f fix: 修复复制简易应用,AI 模型信息没有复制过去 2024-08-27 12:05:20 +08:00
shaohuzhang1 9febff2200 fix: 修复应用设置页面清空 AI 模型报错 2024-08-27 11:59:30 +08:00
shaohuzhang1 b40b4e5305 fix: 修改swagger文档初始化
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-27 11:44:31 +08:00
shaohuzhang1 b19ed0d8db fix: 修复ai对话节点输出内容回添加回车 2024-08-27 11:33:25 +08:00
zhangshaohu cb97de66a8 fix: 修复工作流无法发布
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-26 21:33:15 +08:00
zhangshaohu 626a721518 fix: 修复工作流函数库id未赋值 2024-08-26 21:23:10 +08:00
shaohuzhang1 eedb1be6d8 fix: 修复编排中引用函数,原函数更新后,编排中未同步更新 2024-08-26 19:51:31 +08:00
shaohuzhang1 eb60a0de2e fix: 修复AI模型参数,切换模型时参数修改为当前模型的默认参数
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-26 18:07:28 +08:00
wxg0103 7360779002 fix: 修复vLLM显示名称 2024-08-26 16:42:56 +08:00
wxg0103 4f58081f6c fix: 修复创建模型,不显示参数的缺陷
--bug=1045668 --user=王孝刚 【系统管理】模型设置,添加模型时先输入基础模型再选择模型类型,不限时apikey等输入框 https://www.tapd.cn/57709429/s/1569266
2024-08-26 15:24:32 +08:00
shaohuzhang1 b4bcb4299e fix: 修复【系统管理】模型设置,模型名称省略显示的时候,模型图标会消失 2024-08-26 15:21:57 +08:00
shaohuzhang1 57124c2d2c fix: 修复工作流模型不存在时报错 2024-08-26 14:55:07 +08:00
shaohuzhang1 df172b530c fix: 修复上传PDF文件智能分段时提示 分段内容不能超过102400个字符 #998 2024-08-26 14:17:25 +08:00
shaohuzhang1 bb6f5d6096 fix: 修复应用保存报错 2024-08-26 13:38:38 +08:00
shaohuzhang1 9257677e4b fix: 修复应用复制报错 2024-08-26 11:23:43 +08:00
shaohuzhang1 069e1c539f feat: 修复【应用】-设置的调试预览提问经常出现 会话不存在的情况 2024-08-26 10:48:43 +08:00
王丹 618b32b8a7 fix: 复制应用却少关联数据库字段问题 2024-08-26 10:34:15 +08:00
王丹 5bacb75faf fix: 修复文档设置相似度问题
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-08-24 06:38:39 +08:00
zhangshaohu 2a2c3c9af3 fix: 修复模型保存无法回显问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-23 19:59:31 +08:00
wxg0103 41a5771aa7 fix: 修复知识库迁移报错的缺陷
--bug=1045659 --user=王孝刚 【知识库】通用知识库,文档迁移报错了 https://www.tapd.cn/57709429/s/1568795
2024-08-23 18:09:43 +08:00
shaohuzhang1 9e0ac81f1d refactor: 重构模型参数代码 2024-08-23 17:47:23 +08:00
wxg0103 228f913d9b fix: 修复知识库手动添加分段报错的缺陷
--bug=1045628 --user=王孝刚 【知识库】手动添加分段报错 https://www.tapd.cn/57709429/s/1568695
2024-08-23 16:58:02 +08:00
CaptainB 6169810e1a ci: change python path for sandbox user
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-23 16:21:07 +08:00
wxg0103 295e794a6a fix: 修复混元模型失败的缺陷 2024-08-23 15:59:13 +08:00
wxg0103 e0c3da7c43 refactor: 优化对话记录的导出 2024-08-23 15:36:38 +08:00
wangdan-fit2cloud 293302e5ec feat: 优化新建函数库关闭操作
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-22 18:35:24 +08:00
wangdan-fit2cloud e4b17f842d perf: 优化函数库 2024-08-22 03:18:19 -07:00
shaohuzhang1 2703e73b07 feat: 启动的时候,删除pid 2024-08-22 16:27:45 +08:00
shaohuzhang1 5cf871c6dc fix: 修复复制 工作流数据未复制 2024-08-22 15:45:46 +08:00
shaohuzhang1 3b35a2cf69 fix: 修复上传文档时,向量化未发布异步任务
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-22 15:12:04 +08:00
shaohuzhang1 d63e9354e4 fix: 修复创建web知识库错误 2024-08-22 15:04:47 +08:00
wangdan-fit2cloud 6bbf6a0577 fix: 修改标题控制 2024-08-22 15:01:35 +08:00
wangdan-fit2cloud 6fa6ed92c3 perf: 优化样式 2024-08-22 14:58:34 +08:00
shaohuzhang1 bee832994b fix: 修复函数库输入参数校验,搜索函数失败,编辑函数描述为空校验 2024-08-22 11:50:37 +08:00
shaohuzhang1 d315c01133 fix: 修复dev 无法启动celery 2024-08-22 10:49:22 +08:00
CaptainB 2a87af6172 chore: 解析错误时输出错误原因 2024-08-22 10:43:48 +08:00
shaohuzhang1 ec4fe833b1 fix: 修复无法启动问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-21 18:39:18 +08:00
wangdan-fit2cloud c3b2838955 perf: 优化函数复制功能 2024-08-21 02:27:24 -07:00
wangdan-fit2cloud 9ac6c84b01 fix: 优化应用名称过滤带空格问题 2024-08-21 01:38:19 -07:00
shaohuzhang1 63e7e52a35 fix: 解决local_model服务端口冲突问题 2024-08-21 16:26:56 +08:00
wangdan-fit2cloud 7a596eb853 fix: 修复复制应用和函数库问题 2024-08-21 00:38:02 -07:00
wangdan-fit2cloud fa463231c5 feat: 增加函数库删除功能 2024-08-20 23:56:10 -07:00
zhangshaohu 7c5957e0a3 feat: 分离任务 2024-08-21 14:46:38 +08:00
wxg0103 8ead0e2b6b refactor: 优化vllm的icon 2024-08-21 14:33:48 +08:00
wangdan-fit2cloud 745fed6bdd perf: 优化文档列表按钮颜色
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-21 10:43:40 +08:00
shaohuzhang1 00af530d27
chore: 解析错误时输出错误原因 (#996)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
Co-authored-by: CaptainB <bin@fit2cloud.com>
2024-08-20 22:03:58 +08:00
CaptainB 17af603397 refactor: 优化pdf加载,修复部分pdf中文乱码的问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-20 16:58:04 +08:00
wxg0103 f9784dcbd1 fix: 修复Xinference 模型回答问题最后几个字会重复一次
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
--bug=1045125 --user=王孝刚 【模型管理】本地 Xinference 模型回答问题最后几个字会重复一次 https://www.tapd.cn/57709429/s/1565685
2024-08-20 11:51:36 +08:00
wxg0103 d50c008979 fix: 修复Xinference 模型回答问题最后几个字会重复一次
--bug=1045125 --user=王孝刚 【模型管理】本地 Xinference 模型回答问题最后几个字会重复一次 https://www.tapd.cn/57709429/s/1565685
2024-08-20 11:49:02 +08:00
wangdan-fit2cloud df33fc80d8 perf: UI样式优化 2024-08-20 11:25:40 +08:00
wangdan-fit2cloud 5b6b203d3e perf: ui样式优化 2024-08-20 11:25:23 +08:00
wangdan-fit2cloud d1a142e658 fix: 修复变量名过长问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-19 18:47:13 +08:00
wangdan-fit2cloud cb141a368a fix: 变量名限制字符数 2024-08-19 17:38:20 +08:00
wangdan-fit2cloud 9afdb50cc4 feat: 高级编排Python代码编辑框增加一个放大按钮 2024-08-19 17:00:47 +08:00
wxg0103 7799163651 refactor: update model params 2024-08-19 15:10:01 +08:00
wxg0103 b1fc202960 refactor: update model params 2024-08-19 15:09:39 +08:00
wxg0103 527a0953d8 refactor: update gemini params
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-19 11:48:35 +08:00
wangdan-fit2cloud 8e8ce795b2 feat: 增加复制应用功能(#768) 2024-08-18 20:25:52 -07:00
wxg0103 1fde17a718 refactor: update model params 2024-08-19 11:25:00 +08:00
wxg0103 35f3ff779b refactor: update model params 2024-08-19 10:38:55 +08:00
刘瑞斌 9d2747cc4b chore: change env in dockerfile
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-08-16 17:42:28 +08:00
CaptainB 01d8204cb5 refactor: 逐页加载pdf, 图片类型单独保存成文件加载 2024-08-16 15:08:22 +08:00
wxg0103 93bfb45782 refactor: update model params 2024-08-16 12:23:12 +08:00
shaohuzhang1 b596b691ec
feat: 函数库删除接口 (#987) 2024-08-16 11:19:00 +08:00
CaptainB 0d59ab2be9 refactor: 使用lazy_load方式加载pdf
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-16 10:43:20 +08:00
wxg0103 c332a6cacc refactor: aws 2024-08-16 10:27:33 +08:00
CaptainB e266dd9d99 refactor: 支持解析pdf中的图片
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-15 20:53:44 +08:00
shaohuzhang1 ebc49fd6e7 fix: 修复用户无法创建问题 2024-08-15 19:14:05 +08:00
wangdan-fit2cloud 5681d2d895 feat: 函数库增加复制功能 2024-08-15 04:07:39 -07:00
shaohuzhang1 845ee524c4 fix: 修复函数库节点为输出节点时类型错误 2024-08-15 18:34:09 +08:00
shaohuzhang1 19b07e92f3 fix: 去除无用前端依赖 2024-08-15 18:17:32 +08:00
shaohuzhang1 87c17deb29 fix: Dockerfile useradd
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-15 17:57:14 +08:00
shaohuzhang1 43a060ffa2 fix: Dockerfile 错误 2024-08-15 17:32:30 +08:00
shaohuzhang1 f421d1975d feat: 函数库功能 2024-08-15 17:17:25 +08:00
liqiang-fit2cloud 845225cce1 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-08-15 16:20:23 +08:00
liqiang-fit2cloud bacadbd5ba build: change Dockerfile. 2024-08-15 16:20:12 +08:00
wangdan-fit2cloud c2bffb934e fix: 修复模型设置滚动条问题 2024-08-15 10:09:42 +08:00
wangdan-fit2cloud da1037d27d fix: 模型设置滚动条问题 2024-08-15 10:05:11 +08:00
wxg0103 67049f8b04 refactor: dockerfile
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-14 19:34:54 +08:00
wxg0103 210f99bf70 refactor: 优化模型参数 2024-08-14 18:56:06 +08:00
liqiang-fit2cloud a556d27f74 build: change Dockerfile.
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-14 14:37:40 +08:00
CaptainB 6c0d28b4a5 ci: 修改默认pip安装包路径,使用data目录并去掉volume
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-13 12:42:18 +08:00
CaptainB 3e2e5ec680 ci: 修改默认pip安装包路径 2024-08-13 11:50:01 +08:00
shaohuzhang1 9210a649f9
refactor: 优化Xorbits Inference名称显示 (#961)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
Co-authored-by: wxg0103 <727495428@qq.com>
2024-08-12 16:02:13 +08:00
CaptainB b4c8b39e8e ci: 增加自动生成PR的配置 2024-08-12 15:47:13 +08:00
wxg0103 35d9462689
feat: 增加xinference模型对接 (#959) 2024-08-12 12:07:15 +08:00
wangdan-fit2cloud 9cc24ac508 perf: 增加AI模型参数设置页面 2024-08-12 11:46:19 +08:00
wxg0103 d965408e47
Merge pull request #955 from 1Panel-dev/detached
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
feat: 支持cas和oidc认证
2024-08-09 11:24:28 +08:00
wxg0103 11678f3db4 feat: 支持cas和oidc认证
--story=1015857 --user=王孝刚 【登录认证】-X-Pack支持 OIDC设置 https://www.tapd.cn/57709429/s/1560406
--story=1015856 --user=王孝刚 【登录认证】-X-Pack 支持 CAS设置 https://www.tapd.cn/57709429/s/1560408
2024-08-09 11:20:53 +08:00
shaohuzhang1 f11e74aa39
fix: 升级django到 4.2.15 (#950)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-08 11:02:44 +08:00
shaohuzhang1 3edb1f29b1
fix: 修复创建web知识库时,向量模型错误 (#948) 2024-08-08 10:54:37 +08:00
shaohuzhang1 0ad5a76598
fix: 修复分段时,特殊情况会丢失数据 #938 (#946)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-07 19:52:05 +08:00
shaohuzhang1 e59e26208b
fix: 修改调试页面多轮对话设置无效问题 (#945) 2024-08-07 15:12:32 +08:00
shaohuzhang1 9d3e0d4516
fix: 修改图片上传像素校验位200亿 (#943) 2024-08-07 14:28:08 +08:00
shaohuzhang1 59af953caa
fix: 修复文档同步文档状态错误 (#942) 2024-08-07 13:54:12 +08:00
shaohuzhang1 0e186f3f5a
fix: 模型管理,模型名称长度从20个字符调整到64个字符 (#940)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-07 11:44:32 +08:00
wangdan-fit2cloud 889ebe4ed5 perf: 优化头像图标不超过10MB 2024-08-07 11:21:46 +08:00
wangdan-fit2cloud 2605d50bd0 perf: 上传头像可支持GIF,大小扩大到10M 2024-08-07 11:17:20 +08:00
shaohuzhang1 4b2213a171
fix: 修复工作流提示词使用md格式输入框,输入框滚动问题 (#939) 2024-08-07 11:07:32 +08:00
shaohuzhang1 8453ea2b4b
fix: 修复节点直接回答,不同节点响应用回车隔开 (#935)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-06 16:56:05 +08:00
shaohuzhang1 864bca6450
fix: 修复索引中的文档,知识库删除后依然再执行 (#934) 2024-08-06 16:22:53 +08:00
shaohuzhang1 b3c7120372
fix: 修复QA文件解析失败 (#933) 2024-08-06 14:47:28 +08:00
shaohuzhang1 6f2d437ac8
fix: 修复无法上传像素点很高的图片 (#932) 2024-08-06 14:03:07 +08:00
shaohuzhang1 62b12c3124
fix: 修复ollama模型二级path无法添加问题 #805 (#930)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-06 11:34:05 +08:00
shaohuzhang1 d33bf6a8e8
fix: 修复知识库问题管理修改问题报错 (#929) 2024-08-06 10:13:52 +08:00
wxg0103 4733501d3c feat: 增加依赖 2024-08-06 10:02:07 +08:00
shaohuzhang1 db167dd8b4
fix: 修复节点输出,输出结果重复 (#928) 2024-08-06 09:51:16 +08:00
wangdan-fit2cloud b55524ad4e fix: 【应用】仅有使用权限高级编排自动保存问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-08-05 17:02:24 +08:00
wangdan-fit2cloud 097b5dd3ec perf: 【问答页面】对话框支持格式(#909) 2024-08-05 16:40:35 +08:00
wxg0103 6fd33cdeed
Merge pull request #924 from 1Panel-dev/pr@main@feat_model
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
feat: 增加对接模型
2024-08-05 09:31:56 +08:00
wxg0103 72423a7c3e feat: 增加对接模型 2024-08-05 09:27:16 +08:00
shaohuzhang1 35f0c18dd3
feat: 支持节点参数设置直接输出 #846
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-08-02 14:21:29 +08:00
shaohuzhang1 76c1acbabb
fix: 修复讯飞星火模型多用户同时提问后,回答内容会错乱 #917 (#920) 2024-08-02 10:39:54 +08:00
wangdan-fit2cloud 7b48599e57 fix: 修复第一次修改密码问题
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-07-30 17:54:21 +08:00
wangdan-fit2cloud db839887cf fix: 专业版过期历史记录显示问题 2024-07-30 17:24:31 +08:00
wangdan-fit2cloud 78937f4c48 fix: 修复嵌入式不显示历史记录问题 2024-07-30 17:14:36 +08:00
wxg0103 05730e4872 Revert "fix: 修复更新网站logo不生效的缺陷"
This reverts commit 5608b5fd41.
2024-07-30 16:52:46 +08:00
wxg0103 530c3e288c
Merge pull request #899 from 1Panel-dev/pr@main@fix_1044638
fix: 修复更新网站logo不生效的缺陷
2024-07-30 16:25:34 +08:00
wxg0103 5608b5fd41 fix: 修复更新网站logo不生效的缺陷 2024-07-30 16:24:55 +08:00
wangdan-fit2cloud 200ebb03b4 fix: 修复上传文档滚动条消失问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-30 12:48:12 +08:00
shaohuzhang1 16d7316dca
feat: 段落分块设置最小分块字数 (#898) 2024-07-30 11:08:53 +08:00
wangdan-fit2cloud 61024a661e fix: 修复xpack显示问题 2024-07-30 11:07:27 +08:00
shaohuzhang1 afddc40ab5
fix: 修复知识库检索向量模型不一致时错误提示 (#897) 2024-07-30 11:05:51 +08:00
王丹 624c82ab1c fix: 修复嵌入图标大小
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-29 21:12:44 +08:00
shaohuzhang1 a6ce8955b9
fix: 修复【应用】浮窗模式嵌入拖拽问题 (#894) 2024-07-29 19:12:53 +08:00
wangdan-fit2cloud 33b9264a46 fix: 修复code预览折叠问题 2024-07-29 18:47:31 +08:00
shaohuzhang1 8719f71efd
fix: 修复【应用】浮窗模式嵌入第三方,开启可拖动位置,手机上无法拖动 (#893) 2024-07-29 18:09:22 +08:00
wangdan-fit2cloud 336a0dfebe fix: 修复样式问题 2024-07-29 17:41:04 +08:00
shaohuzhang1 388457b1b3
fix: 修复WEB 知识库批量导入文档,中间有失败的,后面的文档都不会导入 #677 (#890) 2024-07-29 17:18:17 +08:00
shaohuzhang1 d438bbcc48
fix: 修复模型非必填报错 (#889) 2024-07-29 16:45:45 +08:00
shaohuzhang1 a3a1e3c53a
fix: 修复嵌入脚本 (#888) 2024-07-29 16:33:29 +08:00
wangdan-fit2cloud 3909e2f094 fix: 修复创建校验问题 2024-07-29 16:26:35 +08:00
wangdan-fit2cloud d70aca6b8a fix: 修复样式bug 2024-07-29 16:26:35 +08:00
maninhill ebe5e16593
chore: Update README.md 2024-07-29 16:25:57 +08:00
shaohuzhang1 6aa2a682bc
fix: 修复向量化失败,缓存未被删除 (#887) 2024-07-29 16:17:30 +08:00
shaohuzhang1 3c7142ed7c
feat: 文档添加排队中状态 (#886) 2024-07-29 15:51:33 +08:00
wxg0103 29b005e405 fix: 修复删除知识库使用的向量模型报错的缺陷 2024-07-29 15:15:41 +08:00
wangdan-fit2cloud 2a73299b8b
perf: 优化头部按钮图标
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
perf: 优化头部按钮图标
2024-07-28 23:11:02 -07:00
wangdan-fit2cloud d97a88ae51 perf: 优化头部按钮图标 2024-07-29 14:09:05 +08:00
shaohuzhang1 d935e9a836
fix: 修复上传文档,高级分段设置分段长度为10w字符,生成预览还是4096个字符一段 (#884) 2024-07-29 14:08:40 +08:00
wangdan-fit2cloud 485eeb6ac1 fix: 修复添加关联知识库选中失效问题 2024-07-29 11:19:13 +08:00
shaohuzhang1 1979cf12c4
feat: gunicorn启动使用gthread (#882)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-07-26 18:58:01 +08:00
王丹 fbaac3c230 fix: 更新license限制权限 2024-07-26 18:42:40 +08:00
王丹 8689f9719c fix: 修复应用图标错位问题 2024-07-26 18:34:45 +08:00
shaohuzhang1 d6543ce3b0
fix: 修复缓存模型key错误 (#878)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-26 09:52:25 +08:00
shaohuzhang1 7471076716
fix: 修复特定情况下quick_question解析错误 (#876)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-25 18:36:48 +08:00
shaohuzhang1 dfe9e6fcef
feat: 支持解析<quick_question>标签内容当做快捷问题解析#762 (#875) 2024-07-25 17:57:08 +08:00
wangdan-fit2cloud a5e5d10174
优化向量模型展示
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
优化向量模型展示
2024-07-25 02:14:01 -07:00
wangdan-fit2cloud 1b8b11315c perf: 优化模型选择组件 2024-07-25 16:37:41 +08:00
wangdan-fit2cloud 76dac79b2e perf: 优化向量模型展示 2024-07-25 16:37:41 +08:00
wangdan-fit2cloud c4d7e9588a perf: 优化样式 2024-07-25 16:37:41 +08:00
shaohuzhang1 1d23b79c3f
fix: 修复【系统管理】向量模型下载失败后,页面上的其他模型也会显示失败状态 (#872) 2024-07-25 16:29:45 +08:00
shaohuzhang1 3a7d7e8003
fix: 修改模型取消下载提示 (#871) 2024-07-25 16:14:33 +08:00
shaohuzhang1 cb3357aeb8
fix: 修复【浮窗】-拖拽机器人时应该跟随鼠标移动 (#869) 2024-07-25 15:37:58 +08:00
shaohuzhang1 da11d771d7
fix: 修复【应用】- 显示设置 恢复默认后,浮窗入口图标显示错误。 (#868) 2024-07-25 15:14:02 +08:00
shaohuzhang1 ad0592552b
fix: 修复【系统管理】创建模型,没有校验 (#867) 2024-07-25 14:53:04 +08:00
wangdan-fit2cloud 0531aa59b9 fix: 修复图标颜色错误 2024-07-25 14:27:18 +08:00
dependabot[bot] 749d49ac0f
chore(deps): update langchain-community requirement (#862) 2024-07-25 11:55:09 +08:00
shaohuzhang1 c76bc0f2c2
refactor: 重构部分代码 (#865) 2024-07-25 11:54:41 +08:00
wangdan-fit2cloud 89d8705c04 fix: 修复新增对话不可删除问题 2024-07-25 10:48:25 +08:00
shaohuzhang1 0d2524df1d
refactor: 重构部分代码 (#864) 2024-07-25 10:41:38 +08:00
wangdan-fit2cloud 0e3acd33a5 perf: 优化显示设置默认选项 2024-07-24 17:06:21 +08:00
shaohuzhang1 0131f46e37
fix: 修改启动方式 (#860) 2024-07-24 16:55:00 +08:00
shaohuzhang1 c2bfadac3c
fix: 修复应用命中测试未关联知识库时,响应空数组 (#859) 2024-07-24 16:31:57 +08:00
shaohuzhang1 c6886088e3
fix: 模型修改时,删除模型缓存数据 (#858)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-24 16:12:05 +08:00
shaohuzhang1 26536112ce
fix: 修复应用无法保存 (#856) 2024-07-24 16:03:44 +08:00
wangdan-fit2cloud e2867995af fix: 修复提示错误 2024-07-24 15:27:00 +08:00
shaohuzhang1 d86f0f3828
feat: 增加分段内容长短为100000个字符#477 (#855) 2024-07-24 15:21:43 +08:00
wangdan-fit2cloud 12262280ee feat: 修复关联数据库问题 2024-07-24 15:06:38 +08:00
wangdan-fit2cloud 235c699994 fix: 修复关联知识库问题 2024-07-24 14:39:52 +08:00
wangdan-fit2cloud 4e08fae133
feat: 应用对话显示应用图标
feat: 应用对话显示应用图标
2024-07-23 22:57:48 -07:00
wangdan-fit2cloud 08cd3c9378 feat: 应用对话显示应用图标 2024-07-24 13:56:50 +08:00
maninhill 6de62d987c
chore: Update README.md 2024-07-24 13:09:38 +08:00
wangdan-fit2cloud 2e4d5fa339 fix: 修复嵌入式历史不显示问题 2024-07-24 12:39:37 +08:00
wxg0103 967c1af87f fix: 1044410 2024-07-24 11:40:20 +08:00
wangdan-fit2cloud edab63e76e perf: 优化主题显示 2024-07-24 11:19:30 +08:00
wangdan-fit2cloud 6874b81639 perf: 欢迎语增加字数限制 2024-07-24 11:01:07 +08:00
wxg0103 fa497053ad
Merge pull request #847 from 1Panel-dev/detached
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
fix: 修复再次修改logo报错的缺陷
2024-07-23 19:14:19 +08:00
wxg0103 146121c960 fix: 修复再次修改logo报错的缺陷
--bug=1044392 --user=王孝刚 【系统管理】外观设置,修改网站logo后再次修改报错 https://www.tapd.cn/57709429/s/1553208
2024-07-23 19:11:49 +08:00
wangdan-fit2cloud a851088f69
perf: 优化模型类型显示
perf: 优化模型类型显示
2024-07-23 03:47:11 -07:00
wangdan-fit2cloud c2b81a3ca5 perf: 优化模型类型显示 2024-07-23 18:43:07 +08:00
wxg0103 0143aef38d
Merge pull request #842 from 1Panel-dev/detached
refactor: ldap_login
2024-07-23 18:26:45 +08:00
wangdan-fit2cloud ebeee9bbed
fix: 优化外观设置问题
fix: 优化外观设置问题
2024-07-23 03:25:18 -07:00
wangdan-fit2cloud 7465ef6511 fix: 修改外观设置bug 2024-07-23 18:22:03 +08:00
shaohuzhang1 53434f9d24
feat: 细分段落chunk增加召回命中率 (#841) 2024-07-23 18:19:41 +08:00
wxg0103 cbe99c5b8e refactor: ldap_login 2024-07-23 18:18:51 +08:00
shaohuzhang1 203c3e5cde
fix: 固定langchain版本 (#840)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-23 13:37:54 +08:00
wxg0103 7dc2b16d1a
Merge pull request #839 from 1Panel-dev/pr@main@fix_permission
fix: 修改模型权限判断
2024-07-23 11:40:11 +08:00
wxg0103 512e629942 fix: 修改模型权限判断 2024-07-23 11:35:50 +08:00
wangdan-fit2cloud ce107db421 fix: 社区版显示设置问题 2024-07-23 10:30:35 +08:00
shaohuzhang1 b48345c6c0
fix: 修复嵌入功能参数错误 (#832)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-22 19:13:47 +08:00
shaohuzhang1 5f3f1dd2ca
feat: 显示设置功能 2024-07-22 18:52:56 +08:00
wangdan-fit2cloud d7fb585bce fix: 修复已关联知识库问题 2024-07-22 18:38:53 +08:00
wangdan-fit2cloud 3266e405c7 fix: 修复登录图片消失问题 2024-07-22 17:38:45 +08:00
shaohuzhang1 ed54ae632b
fix: 修复变量取值错误 (#827)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-22 14:21:58 +08:00
shaohuzhang1 98938b8ccf
fix: 修复模型管理中,公共模型不能修改 (#826) 2024-07-22 12:03:05 +08:00
shaohuzhang1 a404a5c6e9
fix: 修复模型没权限使用时报错 (#825) 2024-07-22 11:44:38 +08:00
shaohuzhang1 fb5ad9a06b
fix: 修复登录页面无法显示图片 (#823) 2024-07-22 10:06:18 +08:00
shaohuzhang1 c465ddff19
fix: 修复无法流式输出 (#820)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-07-19 21:34:17 +08:00
shaohuzhang1 6ed619f00b fix: 解决build报错
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-19 18:51:14 +08:00
shaohuzhang1 de0d93e6ca
feat: 添加main.py dev指令 (#819) 2024-07-19 18:35:52 +08:00
shaohuzhang1 00e24c079a fix: 升级 gunicorn 到22.0.0 2024-07-19 18:29:48 +08:00
shaohuzhang1 16851592c3
feat: 添加web服务器gunicorn 2024-07-19 18:23:56 +08:00
gcalgoz 4d8ac28674
fix: 优化文档分割处理 (#814) 2024-07-19 17:33:18 +08:00
wangdan-fit2cloud d3d09b10ec
feat: 模型管理支持向量模型,知识库可以关联向量模型
feat:  模型管理支持向量模型,知识库可以关联向量模型
2024-07-19 02:21:24 -07:00
wangdan-fit2cloud 43fc376d80 Merge branch 'main' into pr@main@model_embedding 2024-07-19 17:19:44 +08:00
wangdan-fit2cloud bee11ee9eb
feat: 对话可更换主题
feat: 对话可更换主题
2024-07-19 02:15:41 -07:00
wangdan-fit2cloud b5019fe340 feat: 对话可换主题 2024-07-19 17:13:53 +08:00
shaohuzhang1 de9b04b447 Merge branch 'pr@main@model_embedding' of github.com:1Panel-dev/MaxKB into pr@main@model_embedding 2024-07-19 16:45:33 +08:00
shaohuzhang1 a9b8bdd365 feat: 支持向量模型 2024-07-19 16:44:53 +08:00
wangdan-fit2cloud 9c2c7f0325 perf: 优化模型设置样式 2024-07-19 16:27:12 +08:00
shaohuzhang1 f372095f51 feat: 支持向量模型 2024-07-19 16:13:44 +08:00
wxg0103 ad5ac9cb74
Merge pull request #811 from 1Panel-dev/pr@main@refactor_login_type
refactor: 优化登录类型判断
2024-07-19 15:37:34 +08:00
wxg0103 304256c129 refactor: 优化登录类型判断 2024-07-19 15:36:52 +08:00
wangdan-fit2cloud 8dc426664f feat: 模型列表更新下载loading 2024-07-19 14:58:08 +08:00
wangdan-fit2cloud d728b0c751 feat: 模型添加样式修改
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-07-19 10:45:25 +08:00
shaohuzhang1 b14a799350 feat: 支持向量模型 2024-07-19 10:34:47 +08:00
wangdan-fit2cloud ead263da22 fix: 关于页面优化 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud 6fd55d752f fix: 修复错误 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud 4f7e02f8fb fix: 修复页面结构bug 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud bd976a7368 fix: 修复权限判断错误 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud d8f9622931 feat: 增加license过期时间提示 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud 76a995d7e3 feat: 关于页面更新 2024-07-19 10:15:25 +08:00
wxg0103 1ebf966dae style: 修改样式 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud 7fd19356b5 fix: 修复外观设置bug 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud 62bc32aa9c feat: 新增外观设置功能 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud 702791603d fix: 修改typo错误 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud f41ac738f4 feat: 外观设置功能 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud daa1e68ae1 feat: 外观设置功能 2024-07-19 10:15:25 +08:00
wangdan-fit2cloud 2b308ba929 feat: 外观设置 2024-07-19 10:15:24 +08:00
wangdan-fit2cloud d5ca5eeaf4 feat: 外观设置 2024-07-19 10:15:24 +08:00
wangdan-fit2cloud 4aafda3446 feat: 外观设置 2024-07-19 10:15:24 +08:00
wangdan-fit2cloud 57aade8d62 feat 外观设置 2024-07-19 10:15:24 +08:00
wangdan-fit2cloud 32ad694dee feat: 外观设置 2024-07-19 10:15:10 +08:00
wangdan-fit2cloud 97104cc492 feat: 外观设置 2024-07-19 10:15:10 +08:00
wangdan-fit2cloud ab08767059 feat: 外观设置 2024-07-19 10:15:10 +08:00
wangdan-fit2cloud d5e12fd627 feat: 主题设置 2024-07-19 10:15:10 +08:00
shaohuzhang1 ce1434edf1 fix: 修复刷新菜单404 (#783) 2024-07-19 10:15:10 +08:00
wxg0103 06ecba867c refactor: ldap_user 2024-07-19 10:15:10 +08:00
wxg0103 10dc1b0487 refactor: user 2024-07-19 10:15:10 +08:00
shaohuzhang1 6a337f7ecd fix: 修复在线知识库爬取文档名超过128个字符报错 #706 (#778) 2024-07-19 10:15:10 +08:00
shaohuzhang1 5dfe56cefb fix: 修复返回的分段结果排序不对,不是按照命中高低顺序排序[BUG] #746 (#770) 2024-07-19 10:15:10 +08:00
shaohuzhang1 8f529181bd fix: 修复换个答案在工作流中一直生效问题 (#766) 2024-07-19 10:15:10 +08:00
shaohuzhang1 8fbcbf079a fix: 修复【问答页面】- 当应用关联的知识库中含有禁用状态的文档时,问答时点击换个答案不会换一批命中分段 #759 (#765) 2024-07-19 10:07:44 +08:00
shaohuzhang1 3c043944e0 feat: 升级django 4.2.14 (#764) 2024-07-19 10:07:44 +08:00
shaohuzhang1 b701cc5355 feat: 支持向量模型
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-18 19:15:41 +08:00
shaohuzhang1 aeff8ab0b4 feat: 支持向量模型 2024-07-18 19:11:29 +08:00
shaohuzhang1 48d6812233 Merge branch 'pr@main@model_embedding' of github.com:1Panel-dev/MaxKB into pr@main@model_embedding 2024-07-18 18:35:19 +08:00
shaohuzhang1 8e3963468e feat: 支持向量模型 2024-07-18 18:34:37 +08:00
wangdan-fit2cloud 2e61010d19 fix: 关于页面优化
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-18 18:27:05 +08:00
wangdan-fit2cloud 2616360159
修复主题错误
修复主题错误
2024-07-18 03:21:52 -07:00
wangdan-fit2cloud 8f7baf994c fix: 修复错误 2024-07-18 18:20:54 +08:00
wangdan-fit2cloud d7612043b9 fix: 修复页面结构bug 2024-07-18 18:13:38 +08:00
wangdan-fit2cloud 04023cec2b fix: 修复描述问题 2024-07-18 16:58:26 +08:00
shaohuzhang1 2619ca6d39 Merge branch 'pr@main@model_embedding' of github.com:1Panel-dev/MaxKB into pr@main@model_embedding 2024-07-18 16:37:15 +08:00
shaohuzhang1 9e76cd97de feat: 支持向量模型 2024-07-18 16:36:34 +08:00
wangdan-fit2cloud 6f8e7e90b6 fix: 修复权限判断错误 2024-07-18 16:17:55 +08:00
wangdan-fit2cloud a4acd34e5f fix: 修复添加知识库问题 2024-07-18 15:46:48 +08:00
shaohuzhang1 9679030565 Merge branch 'pr@main@model_embedding' of github.com:1Panel-dev/MaxKB into pr@main@model_embedding 2024-07-18 15:45:51 +08:00
shaohuzhang1 dcf5892b96 feat: 支持向量模型 2024-07-18 15:44:48 +08:00
wangdan-fit2cloud 5bbb65e4c4 feat: 关联知识库增加校验向量模型 2024-07-18 15:18:49 +08:00
wangdan-fit2cloud 73937746f9 feat: 知识库设置增加embedding模型 2024-07-18 14:34:09 +08:00
wangdan-fit2cloud 18cdd44d75 feat: 优化新建数据库的页面 2024-07-18 10:58:02 +08:00
shaohuzhang1 0e8d4eab12 Merge branch 'pr@main@model_embedding' of github.com:1Panel-dev/MaxKB into pr@main@model_embedding 2024-07-18 10:33:01 +08:00
shaohuzhang1 75b9b17e2e feat: 支持向量模型 2024-07-18 10:26:16 +08:00
wangdan-fit2cloud 7d4f200ead feat: 支持创建空知识库及交互流程优化(#601) 2024-07-17 18:22:56 +08:00
wangdan-fit2cloud b711219b6c feat: 创建空知识库及优化交互流程(#601) 2024-07-17 17:58:19 +08:00
shaohuzhang1 e600b91de2 feat: 支持向量模型 2024-07-17 17:42:54 +08:00
shaohuzhang1 bd4303aee7 feat: 支持向量模型 2024-07-17 17:01:57 +08:00
wangdan-fit2cloud 887fa44ecc
feat: 增加license过期时间提示
feat: 增加license过期时间提示
2024-07-17 01:16:28 -07:00
wangdan-fit2cloud 880610bfaf feat: 增加license过期时间提示 2024-07-17 16:13:33 +08:00
wangdan-fit2cloud 7c3f8884be feat: 关于页面更新 2024-07-17 15:27:27 +08:00
wxg0103 958c815ec2 style: 修改样式 2024-07-17 11:16:21 +08:00
wangdan-fit2cloud e3b9db6847 fix: 修复外观设置bug
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-07-16 18:50:44 +08:00
wangdan-fit2cloud 6e251e6a10 feat: 新增外观设置功能 2024-07-16 18:32:43 +08:00
wangdan-fit2cloud d493667f09
feat: 新增外观设置功能
feat: 新增外观设置功能
2024-07-16 03:29:53 -07:00
wangdan-fit2cloud 433090b30b fix: 修改typo错误 2024-07-16 18:26:26 +08:00
wangdan-fit2cloud 7e08aedcfc feat: 外观设置功能 2024-07-16 18:22:22 +08:00
wangdan-fit2cloud 4adfcd9de1 feat: 外观设置功能 2024-07-16 18:22:22 +08:00
wangdan-fit2cloud ffc896666f feat: 外观设置 2024-07-16 18:22:22 +08:00
wangdan-fit2cloud 7a9d8bf96d feat: 外观设置 2024-07-16 18:22:22 +08:00
wangdan-fit2cloud 80a54401b0 feat: 外观设置 2024-07-16 18:21:37 +08:00
wangdan-fit2cloud 6292b0189a feat 外观设置 2024-07-16 18:21:37 +08:00
wangdan-fit2cloud cbef12995a feat: 外观设置 2024-07-16 18:21:37 +08:00
wangdan-fit2cloud a6a9fc75dd feat: 外观设置 2024-07-16 18:21:37 +08:00
wangdan-fit2cloud 77b3c3d646 feat: 外观设置 2024-07-16 18:21:37 +08:00
wangdan-fit2cloud d7ea0e868b feat: 主题设置 2024-07-16 18:21:37 +08:00
shaohuzhang1 f83e0d7efa
fix: 修复刷新菜单404 (#783) 2024-07-16 18:15:10 +08:00
wxg0103 ce7351e702 refactor: ldap_user 2024-07-16 18:11:47 +08:00
wxg0103 ca1c36ab5d
Merge pull request #781 from 1Panel-dev/pr@main@refactor_user
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
refactor: user
2024-07-16 16:21:51 +08:00
wxg0103 ee9e239385 refactor: user 2024-07-16 16:20:57 +08:00
shaohuzhang1 9b81b89975 feat: 模型接口添加权限参数
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-07-16 16:08:31 +08:00
shaohuzhang1 3249811428
fix: 修复在线知识库爬取文档名超过128个字符报错 #706 (#778) 2024-07-16 10:59:13 +08:00
shaohuzhang1 d554e0ae88
fix: 修复返回的分段结果排序不对,不是按照命中高低顺序排序[BUG] #746 (#770) 2024-07-16 10:33:18 +08:00
shaohuzhang1 5308ad9c89
fix: 修复换个答案在工作流中一直生效问题 (#766)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-15 20:24:12 +08:00
shaohuzhang1 be49147d4a
fix: 修复【问答页面】- 当应用关联的知识库中含有禁用状态的文档时,问答时点击换个答案不会换一批命中分段 #759 (#765) 2024-07-15 20:10:50 +08:00
shaohuzhang1 ed7d3d8b1e
feat: 升级django 4.2.14 (#764) 2024-07-15 17:39:47 +08:00
shaohuzhang1 2f3d282c0d feat: 支持向量模型 2024-07-15 16:27:41 +08:00
wxg0103 7660c8f7f0
Merge pull request #761 from 1Panel-dev/repr@main_release-1.3@fix_github_753
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
fix: 修复判断器删除其中一个条件后,前端序号未更新的缺陷
2024-07-15 15:30:07 +08:00
wxg0103 1eace87463 fix: 修复判断器删除其中一个条件后,前端序号未更新的缺陷
https://github.com/1Panel-dev/MaxKB/issues/753
2024-07-15 15:26:21 +08:00
wangdan-fit2cloud 51a923441b
fix: 修复打开doc/chat显示404(#747)
fix: 修复打开doc/chat显示404(#747)
2024-07-15 00:24:07 -07:00
wangdan-fit2cloud a914a7d1c0 fix: 修复打开doc/chat显示404(#747) 2024-07-15 15:22:15 +08:00
wxg0103 d45d8ff921
Merge pull request #757 from 1Panel-dev/detached
refactor: ldap
2024-07-15 11:22:39 +08:00
wxg0103 c79b474df3 refactor: ldap 2024-07-15 11:18:18 +08:00
shaohuzhang1 410e065b52
refactor: 优化模型管理 (#749)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-07-12 14:15:42 +08:00
wxg0103 1452df7f1c
Merge pull request #743 from 1Panel-dev/detached
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
feat: ldap
2024-07-11 19:59:23 +08:00
wxg0103 4677662e0e feat: ldap 2024-07-11 19:57:22 +08:00
wxg0103 544e1494bb
Merge pull request #741 from 1Panel-dev/pr@main@feat_login
feat: 登录
2024-07-11 19:56:50 +08:00
wxg0103 f1672cfb66 feat: 登录 2024-07-11 19:55:43 +08:00
wangdan-fit2cloud 8994ac4b20 perf: 优化接口文件 2024-07-11 18:28:01 +08:00
wangdan-fit2cloud 475ff183ac
feat: 更新登录页面
feat: 更新登录页面
2024-07-10 23:47:24 -07:00
wangdan-fit2cloud e9efd98597 feat: 更新登录页面 2024-07-11 14:44:18 +08:00
wangdan-fit2cloud f8038bfce2
feat: APIKey样式修改
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
feat: APIKey样式修改
2024-07-10 20:23:00 -07:00
wangdan-fit2cloud b23a31b55e feat: APIKey样式修改 2024-07-11 11:20:27 +08:00
wangdan-fit2cloud 655586bc86
feat: 新增License过期提示
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
feat: 新增License过期提示
2024-07-10 03:06:24 -07:00
wangdan-fit2cloud 18e9d2182c feat: 新增License过期提示 2024-07-10 18:04:38 +08:00
wangdan-fit2cloud 853a3c1909
perf: 优化权限控制
perf: 优化权限控制
2024-07-10 00:27:53 -07:00
wangdan-fit2cloud 9b1a384a44 perf: 优化权限控制 2024-07-10 15:25:06 +08:00
wangdan-fit2cloud 6054dcf774
perf: 部分优化
perf: 部分优化
2024-07-10 00:01:25 -07:00
wangdan-fit2cloud a8d4e3c82e perf: 部分优化 2024-07-10 15:00:08 +08:00
shaohuzhang1 dd924964e8
feat: 添加菜单权限 (#730)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-10 12:22:41 +08:00
wangdan-fit2cloud db34290889
perf: 优化页面结构
perf: 优化页面结构
2024-07-09 20:31:39 -07:00
shaohuzhang1 c1823110d9
fix: 修复AI编排中,指定回复的内容,不能在任务流程中传递 #726 (#728) 2024-07-10 11:30:55 +08:00
wangdan-fit2cloud 0a6f6f0114 perf: 优化页面结构 2024-07-10 11:28:13 +08:00
shaohuzhang1 fd6aa4fb39
fix: 优化认证逻辑 (#724)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-09 18:59:15 +08:00
wangdan-fit2cloud 868e037522
feat: 扩展二级目录
feat: 扩展二级目录
2024-07-09 02:52:15 -07:00
wangdan-fit2cloud f980ca2f94 feat: 扩展二级目录 2024-07-09 17:50:37 +08:00
wxg0103 9f04b1f5f8
Merge pull request #722 from 1Panel-dev/pr@main@feat_api_key
feat: 增加系统API_Keys
2024-07-09 15:12:53 +08:00
wxg0103 9ad82d5369 feat: 增加系统API_Keys
--story=1015434 --user=王孝刚 【X-pack】系统API Key管理及接口文档 https://www.tapd.cn/57709429/s/1545690
2024-07-09 14:54:44 +08:00
shaohuzhang1 60e65a8b17
feat: 接口校验 (#721)
feat: 接口校验
2024-07-09 13:44:27 +08:00
wangdan-fit2cloud ed526c3bf3
feat: 【应用编排】修复选择器滚动条问题
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
feat: 【应用编排】修复选择器滚动条问题
2024-07-08 02:27:44 -07:00
wangdan-fit2cloud fb4722cdd7 feat: 【应用编排】修复选择器滚动条问题 2024-07-08 17:13:56 +08:00
maninhill b997662c15
Merge pull request #711 from 1Panel-dev/pr@main@refactor_1043658
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
refactor: 固定操作列
2024-07-06 16:58:07 +08:00
shaohuzhang1 c1e1a19a42
feat: 添加文件上传接口 (#712)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-05 19:02:20 +08:00
wxg0103 b200bffe42 refactor: 固定操作列
--bug=1043658 --user=王孝刚 【知识库】建议把右边的操作列固定一下 https://www.tapd.cn/57709429/s/1544924
2024-07-05 18:41:51 +08:00
gcalgoz d152f441ff
fix: 对模型嵌入归一化,提升检索速度 (#710) 2024-07-05 18:14:58 +08:00
wangdan-fit2cloud 5950fa3e91
feat: 规范字体
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
feat: 规范字体
2024-07-05 00:35:20 -07:00
wangdan-fit2cloud b902bf153e feat: 规范字体 2024-07-05 15:32:13 +08:00
baixin bf7390f7df
Update README.md
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
修改使用手册链接
2024-07-04 10:47:24 +08:00
baixin c41b3df320
Update README.md 2024-07-04 09:28:10 +08:00
shaohuzhang1 28fb1db715
fix: 修复模型被删除时,节点报错提示 (#701)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-03 17:49:32 +08:00
wangdan-fit2cloud 327b0190d0 feat: 用户手册更新 2024-07-03 17:30:34 +08:00
shaohuzhang1 f5635ee50e
fix: 修复应用关联知识库取消关联未删除关联关系 (#698)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-03 16:05:56 +08:00
shaohuzhang1 7b5658f19d
fix: 修复大模型返回json时,解析出错 #656 (#697) 2024-07-03 15:19:09 +08:00
shaohuzhang1 1c3ea93f06
fix: 修复【应用编排】客户端提问达到限制时,隐藏知识来源 (#696) 2024-07-03 15:02:44 +08:00
shaohuzhang1 bcb27737dc
fix: 修复【知识库】设置中关联应用未显示在高级编排中使用该知识库的应用 (#695) 2024-07-03 14:41:45 +08:00
shaohuzhang1 171d1aaea0
fix: 修复【知识库】设置中关联应用未显示在高级编排中使用该知识库的应用 (#692) 2024-07-03 12:26:07 +08:00
shaohuzhang1 4ca4d2fa84
fix: 修复【应用编排】没有权限的知识库,名称是空白的 (#691) 2024-07-03 11:46:37 +08:00
wangdan-fit2cloud 7701238947
fix: 修复样式问题
fix: 修复样式问题
2024-07-02 19:46:24 -07:00
wangdan-fit2cloud 49dcb7da93 fix: 修复样式问题 2024-07-03 10:45:11 +08:00
maninhill 21b8ad5400
chore: Update README.md 2024-07-03 10:26:27 +08:00
maninhill 7e8b734eda
Merge pull request #689 from liuruibin/patch-1
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
chore: use unseq list
2024-07-02 18:37:54 +08:00
刘瑞斌 b95d215ead
chore: use unseq list 2024-07-02 18:34:30 +08:00
maninhill 21ef91a54c
chore: Update CONTRIBUTING.md 2024-07-02 18:12:27 +08:00
maninhill 9fe7b664e3
chore: Update README.md 2024-07-02 17:44:25 +08:00
shaohuzhang1 78294fc641
fix: 修复高级分段空格分段错误 (#688)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-02 14:59:31 +08:00
shaohuzhang1 3a7a5ac50a
fix: 【工作流】修复判断器不包含无效问题 (#687) 2024-07-02 14:25:37 +08:00
shaohuzhang1 ff9c613602
fix: 【工作流】修复结束锚点不能连接到已被链接的锚点(#686) 2024-07-02 12:04:49 +08:00
shaohuzhang1 00f2a8bbd4
fix: 修复【知识库】高级分段 自动清洗,把所有换行被去除 (#684) 2024-07-02 11:32:20 +08:00
RatishT 6c67b65e6a
Fix pylint warning `no-else-return` (#678) 2024-07-02 10:55:26 +08:00
shaohuzhang1 654aa377ce
fix: 修复回答为空字符串的时候也应该显示执行详情 (#681) 2024-07-02 10:53:17 +08:00
shaohuzhang1 25ebef6b41
fix: 【应用编排】判断器分支判断结果错误 (#680) 2024-07-02 10:27:48 +08:00
maninhill 5199195717
chore: Update README.md
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-01 22:02:34 +08:00
shaohuzhang1 fc6da6a484
fix: 【知识库】知识库上传 有关联问题的会阻塞 (#676) 2024-07-01 19:39:07 +08:00
maninhill 60181d6f83
chore: Update README.md 2024-07-01 18:47:58 +08:00
wangdan-fit2cloud 2cd5b8f143 feat: 读写插件增加交互 2024-07-01 18:31:30 +08:00
wangdan-fit2cloud 9e96610f81
feat: 读写插件增加交互方式
feat: 读写插件增加交互方式
2024-07-01 03:29:42 -07:00
wangdan-fit2cloud af598613b7 feat: 读写插件增加交互方式 2024-07-01 18:17:08 +08:00
wangdan-fit2cloud a6bcceb716
fix: 修复breadcrumb未刷新列表问题
fix: 修复breadcrumb未刷新列表问题
2024-07-01 02:47:21 -07:00
wangdan-fit2cloud f0abac8671 fix: 修复breadcrumb未刷新列表问题 2024-07-01 17:41:54 +08:00
wangdan-fit2cloud a7d0adad5c fix: 修复input-number为空的问题 2024-07-01 17:14:04 +08:00
shaohuzhang1 d240c411f2
fix: 【工作流】 修复父级节点删除后,节点变量未校验问题 (#672)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-07-01 10:20:01 +08:00
shaohuzhang1 2f2f74fdab
feat: 支持工作流 (#671) 2024-07-01 09:45:59 +08:00
maninhill 46fa265ac2
chore: Update README.md
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-29 21:45:03 +08:00
wanghe 16cff9f69b
Update README.md (#670)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-27 22:42:24 +08:00
Evan 726ba2a8e2
fix:知识库上传文档操作报异常,错误发生在 ts_vecto_util.py 文件的 replace_word 函数中:错误的原因是正则表达式模式在某个位置缺少一个右括号,使得子模式未完全结束。该提交修复了这个问题。 (#667)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-06-27 09:51:14 +08:00
maninhill 1af7fcb63c
chore: Update README.md
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-21 15:09:43 +08:00
maninhill 26ee14425c
chore: cr2.fit2cloud.com 已经去掉地域限制 2024-06-21 15:09:15 +08:00
maninhill 6997e36d9e
chore: Update README.md 2024-06-21 15:07:19 +08:00
maninhill 67b4039b74
Merge pull request #660 from ddzyan/patch-1
Update README.md
2024-06-21 15:05:38 +08:00
孺子牛 c3f2a23156
Update README.md
修复在 docker pull 期间,可能遇到的 “repository does not exist or may require 'docker login': denied: only support mainland China.”报错
2024-06-21 10:57:42 +08:00
wangdan-fit2cloud 9479741da3
perf: 优化引用分段文件名过长问题
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
perf: 优化引用分段文件名过长问题
2024-06-18 15:11:20 +08:00
wangdan-fit2cloud 6cfa5b9f2d perf: 优化引用分段文件名过长问题 2024-06-18 15:09:43 +08:00
liqiang-fit2cloud 538f88426b docs: change docker registry.
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-17 11:00:45 +08:00
wangdan-fit2cloud 2fb8dee91e feat: 样式优化 2024-06-13 18:29:37 +08:00
wangdan-fit2cloud 6c950e1268
feat: 历史记录增加删除功能优化
feat:  历史记录增加删除功能优化
2024-06-13 17:25:07 +08:00
wangdan-fit2cloud 4a1a9c73be feat: 历史记录增加删除功能优化 2024-06-13 17:23:34 +08:00
shaohuzhang1 b90672f056
fix: 修复应用最多引用字符数校验10万字符无法保存 (#639) 2024-06-13 16:20:30 +08:00
shaohuzhang1 337994439c
fix: 修复升级langchain后千帆模型无法报错 (#638) 2024-06-13 16:15:16 +08:00
wangdan-fit2cloud 5c697da8dd Merge branch 'pr@main@feat_delete_chat' 2024-06-13 16:06:57 +08:00
wangdan-fit2cloud 3ed8b0b720 perf: 样式优化 2024-06-13 15:58:36 +08:00
shaohuzhang1 4c1fcba546
* feat: 添加聊天记录删除按钮及功能 #548 2024-06-13 15:17:36 +08:00
wangdan-fit2cloud 98a42074eb feat: 历史对话增加删除 2024-06-13 15:15:07 +08:00
shaohuzhang1 3f38f14caa
feat: 对话用户问题调整为10万字符 #628 (#635) 2024-06-13 14:55:35 +08:00
shaohuzhang1 b2460303db feat: 添加聊天记录删除按钮及功能 #548 2024-06-13 11:55:15 +08:00
wangdan-fit2cloud 0c25a66280
perf: 支持10000以上最多引用字符数(#603)(#628)
perf: 支持10000以上最多引用字符数(#603)(#628)
2024-06-13 11:43:11 +08:00
wangdan-fit2cloud 05f2f4fc32
perf: 对话文本输入框自适应调整(#616)
perf: 对话文本输入框自适应调整(#616)
2024-06-13 11:42:52 +08:00
wangdan-fit2cloud d4406e730a perf: 支持10000以上最多引用字符数(#603)(#628) 2024-06-13 11:41:22 +08:00
wangdan-fit2cloud c3391bca34 perf: 对话文本输入框自适应调整(#616) 2024-06-13 11:35:17 +08:00
shaohuzhang1 7a5bfa2673
fix: 修复导入带有表格样式的md文件分段后表格格式丢失 #615 (#630)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-13 10:41:52 +08:00
evilstar 3a7c4d3568
修复:关键词提取的bug (#621)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-11 18:25:12 +08:00
shaohuzhang1 cdc7e13415
feat: 升级langchain版本到2.2.3 (#617)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-07 11:08:32 +08:00
wangdan-fit2cloud 368923af9f fix: 修复翻译问题
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-05 15:58:50 +08:00
shaohuzhang1 bb2768a7eb
fix: 修复对话冗余代码 #590 (#594)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-06-03 10:57:01 +08:00
shaohuzhang1 11a8df151e
fix: 修复通过API进行对话的API文档接口错误 #587 (#593) 2024-06-03 10:53:03 +08:00
maninhill 56a432a98a
chore: Update README.md
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-05-31 11:23:18 +08:00
shaohuzhang1 ac25c39280
fix: 修复命中测试返回分段长度字段校验 (#580)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-30 10:03:01 +08:00
wangdan-fit2cloud 5a6fcd988f
perf: 更新文件图标
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
perf: 更新文件图标
2024-05-29 14:44:55 +08:00
wangdan-fit2cloud 8eb15d053a perf: 更新文件图标 2024-05-29 14:43:14 +08:00
shaohuzhang1 ed7ddfbc59
fix: 修复分段超过分段长度限制 (#577) 2024-05-29 12:00:56 +08:00
shaohuzhang1 5fbdee8338
fix: 修复当前正在回答问题时可以点击换个答案 (#573)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-28 18:24:00 +08:00
shaohuzhang1 d81bc993b4
fix: 修复对话日志的关联问题字符超过256个 (#572) 2024-05-28 18:16:01 +08:00
shaohuzhang1 dd22fa0868
perf: 优化向量化文档后修改更新时间 (#571) 2024-05-28 18:12:45 +08:00
shaohuzhang1 22e192ed11
fix: 修复文档导入解析错误 (#570)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-28 17:32:29 +08:00
wangdan-fit2cloud d907dd3ac5
perf: 部分优化
perf: 部分优化
2024-05-28 16:59:39 +08:00
wangdan-fit2cloud 23b9cac75f perf: 部分优化 2024-05-28 16:58:12 +08:00
shaohuzhang1 2ec9f41812
feat: 支持通过环境变量修改配置 2024-05-28 15:55:05 +08:00
wangdan-fit2cloud 916e5a949d
perf: 优化
perf: 优化
2024-05-28 10:43:06 +08:00
wangdan-fit2cloud 057449e3d8 perf: 优化 2024-05-28 10:41:36 +08:00
wangdan-fit2cloud a1383c3153
fix: 修复导出问题
fix: 修复导出问题
2024-05-28 10:18:52 +08:00
wangdan-fit2cloud 817500de72 fix: 修复导出问题 2024-05-28 10:17:14 +08:00
wangdan-fit2cloud 2802ccc1d4
perf: 优化文案
perf: 优化文案
2024-05-28 10:12:24 +08:00
wangdan-fit2cloud 609108707f perf: 优化文案 2024-05-28 10:08:50 +08:00
shaohuzhang1 e3ba88f8ff
fix: 修复不同页签之间认证共享问题 (#561)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-28 09:32:55 +08:00
shaohuzhang1 c77b20c079
fix: 修复不同页签之间认证共享问题 (#560)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-27 18:27:08 +08:00
shaohuzhang1 a22e0aaec2
fix: 修复不同页签之间认证共享问题 (#559) 2024-05-27 18:16:42 +08:00
shaohuzhang1 a03a2e88fd
fix: 修复不同页签之间认证共享问题 (#558) 2024-05-27 18:05:30 +08:00
shaohuzhang1 45c65f4cc4
fix: 修复对话用户问题不能为空字符串。 #512 (#557) 2024-05-27 17:31:51 +08:00
shaohuzhang1 f020603e00
fix: 修复对话用户问题不能为空字符串。 #512 (#556)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-27 16:19:28 +08:00
wangdan-fit2cloud 5cbd240d1e
perf: 优化导出图标
perf: 优化导出图标
2024-05-27 16:10:05 +08:00
wangdan-fit2cloud 62c7809a4d perf: 优化导出图标 2024-05-27 16:09:05 +08:00
shaohuzhang1 efe5a2b021
fix: 修复excel导入失败问题 (#554) 2024-05-27 16:06:14 +08:00
shaohuzhang1 399b2727e8
feat: 支持知识库文档导出 (#553) 2024-05-27 15:48:24 +08:00
wangdan-fit2cloud 768fd7e921
fix: 修复翻译问题
fix: 修复翻译问题
2024-05-27 15:36:20 +08:00
wangdan-fit2cloud 26e637d576 fix: 修复翻译问题 2024-05-27 15:34:25 +08:00
wangdan-fit2cloud bfbb396f96
perf: 知识库重新向量化优化提示
perf: 知识库重新向量化优化提示
2024-05-27 14:59:08 +08:00
wangdan-fit2cloud 49c2d7af92 perf: 知识库重新向量化优化提示 2024-05-27 14:57:53 +08:00
wangdan-fit2cloud 0afc7bb791
feat: 修复版本号问题
feat: 修复版本号问题
2024-05-27 14:06:43 +08:00
wangdan-fit2cloud a0c80da33f feat: 修复版本号问题 2024-05-27 14:03:31 +08:00
JinTao Chen 270ba18980
feat:国际化页面views/application-overview (#539) 2024-05-27 13:33:11 +08:00
shaohuzhang1 2c82f12571
fix: 文档上传添加html格式限制 (#537)
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
2024-05-24 18:08:09 +08:00
shaohuzhang1 e9a05b1255
fix: 修复qa知识库导入失败错误 (#536) 2024-05-24 17:59:02 +08:00
shaohuzhang1 d5b0937015
fix: 修复删除文档最后一个分段报错 (#534) 2024-05-24 16:30:48 +08:00
shaohuzhang1 7953706895
perf: 优化错误提示 (#533) 2024-05-24 16:18:33 +08:00
shaohuzhang1 2da31997e5
perf: 优化API_KEY调用对话文档 (#532) 2024-05-24 15:57:43 +08:00
wangdan-fit2cloud efe37083d3
fix: 修复翻译问题
fix: 修复翻译问题
2024-05-24 14:38:31 +08:00
wangdan-fit2cloud a2ba4977e8 fix: 修复翻译问题 2024-05-24 14:36:48 +08:00
wangdan-fit2cloud f9d24842ca
fix: 修复翻译问题
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
fix: 修复翻译问题
2024-05-24 11:39:19 +08:00
wangdan-fit2cloud be06740376 fix: 修复翻译问题 2024-05-24 11:37:41 +08:00
shaohuzhang1 8457b5e45e
fix: 修复前端打包错误 (#529) 2024-05-24 11:33:10 +08:00
shaohuzhang1 a3af104ef0
feat: 知识库增加重新向量化功能 2024-05-24 11:27:59 +08:00
shaohuzhang1 9ac9c9b64a
feat: 增加在应用里通过日志绑定问题的时候,问题可以修改 #292 (#527) 2024-05-24 11:22:50 +08:00
shaohuzhang1 948700fbc0
feat: 修改开场白字数限制为4096 #497 (#526) 2024-05-24 11:05:07 +08:00
shaohuzhang1 28938104c0
* feat: 支持上传 Excel/CSV 类型的问答对 (#430)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-23 18:57:49 +08:00
wangdan-fit2cloud 6a226be048
perf: 优化文档标题显示
perf: 优化文档标题显示
2024-05-23 18:42:40 +08:00
wangdan-fit2cloud da1fa897f2 perf: 优化文档标题显示 2024-05-23 18:41:56 +08:00
baixin 09d5f1ee29
Update README.md
修改 Readme内容
2024-05-23 16:49:53 +08:00
wangdan-fit2cloud 88ae5126d6
perf: ios浏览器输入框变大问题优化(#514)
perf:  ios浏览器输入框变大问题优化(#514)
2024-05-23 16:39:01 +08:00
wangdan-fit2cloud 5ada1aa625 perf: ios浏览器输入框变大问题优化(#514) 2024-05-23 16:38:05 +08:00
shaohuzhang1 86f500208f
feat: 支持上传html格式的文档 #364 (#518) 2024-05-23 14:19:18 +08:00
shaohuzhang1 d9e171c430
fix: 开场白不支持Markdown表格语法,无法显示一个表格。 #496 (#511)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-22 19:14:08 +08:00
wangdan-fit2cloud ca9cb9e355
fix: 修复对话相关问题
fix: 修复对话相关问题
2024-05-22 18:02:41 +08:00
wangdan-fit2cloud 94558be708 fix: 修复对话相关问题 2024-05-22 18:02:01 +08:00
wangdan-fit2cloud 38bc98b3b5
feat: 引用分段数最大值增大到 100 个(#503)
feat: 引用分段数最大值增大到 100 个(#503)
2024-05-22 16:14:06 +08:00
wangdan-fit2cloud d5df2534b2 feat: 引用分段数最大值增大到 100 个(#503) 2024-05-22 16:10:39 +08:00
Brian Yang b24a19a035
feat: 支持导出单次聊天的全部对话记录为Markdown文件或HTML文件 (#502) 2024-05-22 15:45:28 +08:00
wangdan-fit2cloud a35b1b824e
fix: 修复对话历史记录无法点赞问题
fix: 修复对话历史记录无法点赞问题
2024-05-22 15:18:40 +08:00
wangdan-fit2cloud 5ea216753f fix: 修复对话历史记录无法点赞问题 2024-05-22 15:17:54 +08:00
wangdan-fit2cloud 1e5067f849
feat: 对话演示适配移动端和部分类型优化
feat: 对话演示适配移动端和部分类型优化
2024-05-22 14:57:42 +08:00
wangdan-fit2cloud 49451b4c0a feat: 对话演示适配移动端和部分类型优化 2024-05-22 14:54:37 +08:00
wangdan-fit2cloud 7d2f4fe7c7
perf: 优化对话页面
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
perf: 优化对话页面
2024-05-21 18:37:30 +08:00
wangdan-fit2cloud 4f03af38ce perf: 优化对话页面 2024-05-21 18:32:48 +08:00
wangdan-fit2cloud 4dac5f1d77
fix: 修复翻译问题
fix: 修复翻译问题
2024-05-21 16:02:07 +08:00
wangdan-fit2cloud e42f5987fa fix: 修复翻译问题 2024-05-21 15:58:55 +08:00
wangdan-fit2cloud 0a05be91a6 fix: 修复翻译引用问题 2024-05-21 14:07:04 +08:00
wangdan-fit2cloud 89b7fe2f39
perf: 知识来源使用markdown页面显示(#457)
perf: 知识来源使用markdown页面显示(#457)
2024-05-21 12:11:14 +08:00
wangdan-fit2cloud 81bd7e3cba perf: 知识来源使用markdown页面显示(#457) 2024-05-21 12:09:14 +08:00
wangdan-fit2cloud 7123733e86
perf: 文档重试改为重新向量化
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
perf: 文档重试改为重新向量化
2024-05-21 11:45:42 +08:00
wangdan-fit2cloud e5c6f05080 perf: 文档重试改为重新向量化 2024-05-21 11:40:21 +08:00
shaohuzhang1 84c7728d00
fix: 修复应用修改模型后,历史对话未使用最新模型 (#487)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-20 20:21:45 +08:00
shaohuzhang1 03b662beec
fix: 提问后模型返回异常信息时也要记录到对话日志中 #416 (#486)
Some checks are pending
sync2gitee / repo-sync (push) Waiting to run
Typos Check / Spell Check with Typos (push) Waiting to run
2024-05-20 19:34:16 +08:00
shaohuzhang1 a3dd967c61
feat: 对话增加历史记录 (#485) 2024-05-20 17:50:14 +08:00
wangdan-fit2cloud 5a4971645d
feat: 国际化 'views/404' 和 'views/application' 页面
feat: 国际化 'views/404' 和 'views/application' 页面
2024-05-20 16:09:18 +08:00
tongque fd938e5e63 pref:隐藏国际化按钮 2024-05-18 11:42:40 +08:00
tongque 222ac40c4b fix:ParamSettingDialog页面国际化字符错误 2024-05-18 11:39:47 +08:00
tongque 1a7359b20c feat:国际化view/application页面 2024-05-18 11:29:42 +08:00
tongque dcc8e28c71 pref:优化国际化views目录 2024-05-18 09:44:04 +08:00
tongque 2f7ffcb761 feat:国际化views/404页面 2024-05-18 09:34:27 +08:00
maninhill e13010f476
chore: Update README.md 2024-05-17 13:01:56 +08:00
shaohuzhang1 e74ba87fc6
fix: 修复上传文档数据集时出现重复问题 (#465) 2024-05-15 17:22:54 +08:00
shaohuzhang1 cad10bb6a9
perf: 优化添加模型,关闭时清除历史模型数据 (#463) 2024-05-15 16:07:50 +08:00
wangdan-fit2cloud c2157230ed fix: 固定markdown编辑器版本 2024-05-15 15:33:08 +08:00
shaohuzhang1 7f699c9c90
perf: 优化模型代码 (#461) 2024-05-15 15:17:12 +08:00
shaohuzhang1 69f5450db2
fix: 修复段落嵌入,文档字符串不变 (#460) 2024-05-15 14:47:48 +08:00
wangdan-fit2cloud 7a84857a11
fix: 修复批量设置问题
fix: 修复批量设置问题
2024-05-15 13:39:11 +08:00
wangdan-fit2cloud 12183bcae4 fix: 修复批量设置问题 2024-05-15 13:37:45 +08:00
wangdan-fit2cloud 32d26eca57
fix: 修复批量导入文档问题
fix: 修复批量导入文档问题
2024-05-15 13:14:48 +08:00
wangdan-fit2cloud 83c7b16d25 fix: 修复批量导入文档问题 2024-05-15 13:12:48 +08:00
shaohuzhang1 d3a14ec727
fix: 修复导入的文档删除部分的分段后,字符数不会重新计算 #421 (#454) 2024-05-15 11:22:26 +08:00
shaohuzhang1 052487a22d
fix: 修复Ollama模型中没有已下载的模型时,在 MaxKB 添加 Ollama模型报错。#437 (#453) 2024-05-15 11:03:46 +08:00
wangdan-fit2cloud 84a770e689
fix: 修复关联问题为空时导入报错(#432)
fix: 修复关联问题为空时导入报错(#432)
2024-05-15 10:58:31 +08:00
wangdan-fit2cloud afbba723f8 fix: 修复关联问题为空时导入报错(#432) 2024-05-15 10:48:30 +08:00
wangdan-fit2cloud 36f477ddf7 fix: 修复错误 2024-05-15 10:27:16 +08:00
Brian Yang c49c10de3d
feat: OpenAI模型表单增加对GPT-4o的支持(#447) (#447) 2024-05-15 10:23:29 +08:00
wangdan-fit2cloud c8980b135e perf: 优化分段代码 2024-05-15 10:10:11 +08:00
wangdan-fit2cloud a47d3ed3c7 feat: 对话增加历史记录功能(#206) 2024-05-15 09:58:57 +08:00
maninhill 8983ff86b8
Merge pull request #448 from KPCOFGS/main
更新了README.md
2024-05-15 09:01:01 +08:00
Shixian Sheng b3482ea5b9
Update README.md 2024-05-14 07:22:46 -04:00
Brian Yang 15b9484af6
feat: 增加Gemini大模型支持 (#439) 2024-05-14 10:06:21 +08:00
wangdan-fit2cloud 4e30c949f4
Merge pull request #438 from 1Panel-dev/pr@main@fix-bug
fix: 文档和问题批量删除问题修复
2024-05-13 17:33:48 +08:00
wangdan-fit2cloud 19c0252dc6 fix: 文档和问题批量删除问题修复 2024-05-13 17:30:55 +08:00
wangdan-fit2cloud dbcd8cf390
Merge pull request #436 from 1Panel-dev/pr@main@fix-bug
fix: 文档问题列表多选框点击范围优(#424)
2024-05-13 16:53:17 +08:00
wangdan-fit2cloud 270aca46b1 fix: 文档问题列表多选框点击范围优(#424) 2024-05-13 16:41:55 +08:00
maninhill 73edc28a61
chore: Update README.md 2024-05-13 13:40:54 +08:00
Brian Yang 2009eb2bdf
feat: 增加了DeepSeek大模型支持 && fix: 修复了系统设置->模型设置中的动态表单复用时,错误地显示之前动态表单内容的bug && perf: 修改Azure OpenAI模型表单描述,简化对应代码实现 (#431)
* feat: 增加了DeepSeek大模型支持

* fix: 修复了系统设置->模型设置中的动态表单复用时,错误地显示之前动态表单内容的bug

* perf: 修改Azure OpenAI模型表单描述,简化代码实现(取消对AzureLLMModelCredential的依赖,保留DefaultAzureLLMModelCredential)

* perf: 更换DeepSeek图标为官网彩色svg
2024-05-13 13:31:21 +08:00
wangdan-fit2cloud 6a734cd6b5
Merge pull request #415 from 1Panel-dev/pr@main@fix-bug
fix: 文档设置相似度问题修复
2024-05-10 14:57:47 +08:00
wangdan-fit2cloud d2d35b6423 fix: 文档设置相似度问题修复 2024-05-10 14:55:47 +08:00
wangdan-fit2cloud 45205e2b9a
Merge pull request #414 from 1Panel-dev/pr@main@peaf-login
perf: 优化登录页面
2024-05-10 14:15:32 +08:00
wangdan-fit2cloud 19057b1700 perf: 优化登录页面 2024-05-10 14:13:44 +08:00
wangdan-fit2cloud d724a54340
Merge pull request #411 from 1Panel-dev/pr@main@fix-bug
fix: 修复版本号翻译问题
2024-05-10 11:06:37 +08:00
wangdan-fit2cloud 61a0b2c908 fix: 修复版本号翻译问题 2024-05-10 11:05:04 +08:00
shaohuzhang1 18861b45db
fix: 修复上传文档懒加载无法加载第二页 (#407) 2024-05-09 20:45:14 +08:00
shaohuzhang1 b123f0fa2f
perf: 优化文档分段前端懒加载 (#406) 2024-05-09 19:54:25 +08:00
wangdan-fit2cloud cf4ce7ee46
Merge pull request #405 from 1Panel-dev/pr@main@perf-cross_domain
跨域地址过滤空行
2024-05-09 18:02:47 +08:00
wangdan-fit2cloud 80383853f9 perf: 跨域地址过滤空行 2024-05-09 17:58:21 +08:00
wangdan-fit2cloud 5838a4f5df perf: 分段预览懒加载 2024-05-09 17:47:11 +08:00
shaohuzhang1 7f30d03abd
fix: 修复分词超过数据库最大限制 (#401) 2024-05-09 15:55:35 +08:00
wangdan-fit2cloud 8159fef722
Merge pull request #397 from 1Panel-dev/pr@main@fix-bug
fix: 修复批量迁移问题
2024-05-09 10:27:17 +08:00
wangdan-fit2cloud 61819fd514 fix: 修复批量迁移问题 2024-05-09 10:24:38 +08:00
shaohuzhang1 3fb6192021
fix: 跨域失效 (#394) 2024-05-08 18:46:58 +08:00
shaohuzhang1 69e39f5ee5
feat: 导入时支持设置分段标题为关联问题(#177) (#392) 2024-05-08 17:40:01 +08:00
shaohuzhang1 4da8b1b0d8
feat: 直接回答支持设置相似度值(#371) 2024-05-08 17:31:56 +08:00
shaohuzhang1 267be441e3
feat: 跨域设置(#276) 2024-05-08 17:13:13 +08:00
shaohuzhang1 d4e742f7c6
feat: 分段管理支持批量迁移,删除分段 #113,#103 2024-05-08 10:40:15 +08:00
wangdan-fit2cloud 8204d5ff44
Merge pull request #381 from 1Panel-dev/pr@main@fix-bugs
fix: 修复快捷修改组件问题和优化支持一键清空输入内容
2024-05-07 17:09:20 +08:00
wangdan-fit2cloud 23ed472253 fix: 修复快捷修改组件问题和优化可一键删除输入内容 2024-05-07 17:06:39 +08:00
wangdan-fit2cloud 48496bcb15
Merge pull request #380 from 1Panel-dev/pr@main@perf-migrate
perf: 优化迁移文档过滤知识库选项
2024-05-07 16:34:43 +08:00
wangdan-fit2cloud 1e67f39ce1 perf: 优化迁移文档过滤知识库选项 2024-05-07 16:30:10 +08:00
shaohuzhang1 7a08f036e9
fix: 创建新用户时用户名含有 0 时校验不通过 #358 (#375) 2024-05-07 13:54:13 +08:00
shaohuzhang1 77d71f95a3
fix: 修改文档向量化重试,文档状态处理 (#373) 2024-05-07 13:50:39 +08:00
shaohuzhang1 c1b6ec630c
fix: 导入文档中含有特殊字符时,导入失败。 #363 (#372) 2024-05-07 12:18:03 +08:00
shaohuzhang1 7d62842b15
fix: ui文件打包报错 #348 (#368) 2024-05-07 10:34:38 +08:00
wangdan-fit2cloud f977c33d8e perf: 优化部分代码 2024-05-06 10:53:03 +08:00
wangdan-fit2cloud 71fc0e5603
Merge pull request #346 from tongque0/main
feat:完成layout部分国际化
2024-05-06 10:27:19 +08:00
tongque ac1cece53c feat:完成layout部分国际化,仅topbar 2024-05-01 14:05:32 +08:00
tongque 93a959b3ef Merge branch 'main' of https://github.com/1Panel-dev/MaxKB 2024-05-01 11:51:23 +08:00
shaohuzhang1 2d7562f23a
fix: 相同类型的知识库之间迁移类型发生改变 (#337) 2024-04-30 17:15:38 +08:00
shaohuzhang1 8eb92abfec
fix: [知识库]相同类型的知识库之间无法迁移文档 #334 (#335) 2024-04-30 16:37:16 +08:00
shaohuzhang1 a10dd093e4
fix: 普通文档重试按钮不生效 (#332) 2024-04-30 16:14:57 +08:00
shaohuzhang1 832426600a
fix: 延长分段接口超时时间 #306 (#331) 2024-04-30 14:44:19 +08:00
shaohuzhang1 b40790492c
fix: 应用,不选择模型,开启问题优化和多轮对话就会出现错误 #326 (#330) 2024-04-30 14:28:53 +08:00
shaohuzhang1 4eb46786a6
fix: 修复当有引用分段未走应用提示词 (#320) 2024-04-29 18:15:47 +08:00
shaohuzhang1 dedfd31e5c
fix: 修复无引用分段指定回答设置问题 #317 (#319) 2024-04-29 17:11:19 +08:00
shaohuzhang1 e5e2ece1bd
perf: 对话日志摘要样式优化 (#315) 2024-04-29 14:23:32 +08:00
shaohuzhang1 62c959f905
perf: 优化历史数据分词处理兜底操作 (#313) 2024-04-29 14:09:58 +08:00
shaohuzhang1 a788d8f3b8
perf: 优化超长文本rsa加密解密 (#312) 2024-04-29 13:53:49 +08:00
shaohuzhang1 c4c4934932
fix: 修复问题字符超过256无法存储对话日志 #305 (#311) 2024-04-29 13:35:26 +08:00
shaohuzhang1 cd472b47f7
fix: 模型添加长字符的加密解密方式 (#310) 2024-04-29 13:28:47 +08:00
shaohuzhang1 c71a1ae79b
fix: 处理获取tokens失败情况 (#308) 2024-04-29 11:08:44 +08:00
wangdan-fit2cloud e52d425517
Merge pull request #302 from 1Panel-dev/fix-bugs
前端样式优化
2024-04-28 19:02:56 +08:00
wangdan 82d93631ea perf: 设置自定义Logo 2024-04-28 19:00:30 +08:00
wangdan a5d58b7ec7 fix: 样式修复 2024-04-28 18:50:21 +08:00
shaohuzhang1 e543acd2d1
fix: 【问答页面】提问达到最大限制的时候 返回内容重复。 (#301) 2024-04-28 18:48:08 +08:00
shaohuzhang1 e4bcebd579
fix: API_KEY 字符长度过长时,添加模型报错 #278 (#300) 2024-04-28 18:09:51 +08:00
shaohuzhang1 99483b1b4b
perf: 优化未配置ai模型回答 (#299) 2024-04-28 17:59:02 +08:00
shaohuzhang1 ef8def269d
fix: 快捷文档点击无法发送 (#298) 2024-04-28 17:20:35 +08:00
shaohuzhang1 7b5ccd9089
perf: 应用的AI模型修改为不必填 (#297) 2024-04-28 17:09:12 +08:00
tongque 63caa3631a feat:layout部分国际化 2024-04-28 15:23:41 +08:00
shaohuzhang1 5705f3c4a8
feat: 文档批量设置命中处理方式 (#293) 2024-04-28 14:35:51 +08:00
tongque 6f15ebba05 Merge upstream changes 2024-04-28 13:36:09 +08:00
shaohuzhang1 d1fe18166a
perf: 优化模型管理基础模型提示 (#289) 2024-04-28 13:30:26 +08:00
shaohuzhang1 a61d8eb0a1
perf: 增加ollama基础模型选项 (#288) 2024-04-28 13:16:12 +08:00
shaohuzhang1 9cb21d7c60
perf: 隐藏国际化按钮 (#287) 2024-04-28 12:56:46 +08:00
JinTao Chen 4dd9361a97
feat(i18n): 初始化 vue-i18n 以支持国际化 (#275) 2024-04-28 12:43:16 +08:00
Brian Yang db4bcfc5d6
perf: 增加了更多常用的OpenAI模型及其描述 & 现在可以通过tooltip正常显示ModelInfo中desc的内容 (#269) 2024-04-28 11:59:57 +08:00
shaohuzhang1 29427a0ad6
fix: 私有部署计算tokens报错 (#284) 2024-04-28 11:59:19 +08:00
tongque 601af09d03 feat(i18n): initialize vue-i18n for internationalization support
- Added vue-i18n as a dependency.
- Configured vue-i18n in the main application file.
- Created initial locale files with translations.
2024-04-27 17:31:15 +08:00
tongque a50e356f42 feat(i18n): initialize vue-i18n for internationalization support
- Added vue-i18n as a dependency.
- Configured vue-i18n in the main application file.
- Created initial locale files with translations.
2024-04-27 17:24:53 +08:00
shaohuzhang1 9d808b4ccd
feat: 支持文档迁移(#52) 2024-04-26 18:35:46 +08:00
Joe Stone 4f78382df4
feat: 添加千问模型 2024-04-26 18:05:16 +08:00
evilstar 4a28005d65
对话记录按时间排序 (#261)
Co-authored-by: li_qzh <li-qzh@neusoft.com>
2024-04-26 18:03:14 +08:00
shaohuzhang1 1f916a5c3e
feat: 【知识库】docx支持图片上传 #69 (#267) 2024-04-26 18:03:02 +08:00
wangdan-fit2cloud d34ebe5971
Merge pull request #265 from 1Panel-dev/pr@main@perf-search_mode
perf: 优化检索模式参数设置
2024-04-26 02:17:48 -07:00
wangdan-fit2cloud 208f4904a1 perf: 优化检索模式参数设置 2024-04-26 17:13:04 +08:00
helix.song e87f5b07cd 修复前端缺少 @ctrl/tinycolor 依赖库,以及不兼容4.1.x版本的问题 2024-04-26 11:28:27 +08:00
wangdan-fit2cloud ecb44bc1e7
Merge pull request #258 from 1Panel-dev/pr@main@fix-bugs
修复设置Logo问题
2024-04-25 20:08:12 -07:00
wangdan-fit2cloud 2a4d079e99 fix: 修复设置Logo问题 2024-04-26 10:57:37 +08:00
wangdan-fit2cloud 473a671f24 fix: 修复设置Logo问题 2024-04-26 10:40:22 +08:00
wangdan-fit2cloud 9e48ab5e12
Merge pull request #255 from 1Panel-dev/pr@main@fix-bugs
perf: 搜索框可以支持一键清除(#252)
2024-04-25 04:20:59 -07:00
wangdan-fit2cloud e59d71f4d8 perf: 搜索框可以支持一键清除(#252) 2024-04-25 19:18:57 +08:00
wangdan-fit2cloud bd7f07f1fb
fix: 修复对话Id缺失问题 2024-04-25 18:55:12 +08:00
wangdan-fit2cloud 8af8a4949c feat: 优化全文检索和混合检索方式(#47) 2024-04-25 17:57:01 +08:00
shaohuzhang1 84e8ca0f84
fix: 应用修改获取对话详情被拒绝 (#251) 2024-04-25 16:17:29 +08:00
shaohuzhang1 38f2208639
feat: 【应用】用户对话时可以设置显示知识来源(#45) 2024-04-25 16:13:14 +08:00
shaohuzhang1 72f43cff51
fix: ai对话未计算tokens #247 2024-04-25 14:05:59 +08:00
shaohuzhang1 25aa4cd2b7
feat: 文档支持设置命中处理方式(#56) 2024-04-25 10:44:14 +08:00
baixin 6980704cce
Update README.md
修改 Readme
2024-04-25 10:43:58 +08:00
baixin 26b6e98e59
Update README.md
修改 Readme中 UI 展示图
2024-04-25 10:41:09 +08:00
wangdan-fit2cloud 164d1b2d99
perf: 优化markdown支持离线部署(#231) 2024-04-24 17:30:06 +08:00
shaohuzhang1 1f522dc551
* feat: 增加无引用分段设置 2024-04-24 15:03:58 +08:00
liqiang-fit2cloud a3f47102a6 docs: Update README.md 2024-04-24 14:54:05 +08:00
liqiang-fit2cloud 5a0d423156 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-04-24 14:49:59 +08:00
baixin 28b3579ce0
Update README.md
Readme 增加技术交流群
2024-04-24 14:44:17 +08:00
wanghe-fit2cloud b940f31ec8 docs: add SECURITY.md 2024-04-23 22:59:58 +08:00
wanghe-fit2cloud 22b37669fe docs: add CONTRIBUTING.md 2024-04-23 22:58:57 +08:00
wanghe-fit2cloud b0e0cc1d98 docs: add CODE_OF_CONDUCT.md 2024-04-23 22:57:27 +08:00
shaohuzhang1 b26265fefd
feat: 【应用】支持自定义上传应用的logo #54
* feat: 【知识库】本地上传的文档内带的图片能同步到 maxkb 里 #69 
* feat: 【应用】支持自定义上传应用的logo #54
2024-04-23 19:03:34 +08:00
shaohuzhang1 73dfcb6fb0
perf: 优化流式输出,加快数据展示 #217
* perf: 优化流式输出,加快数据展示 #217
2024-04-23 16:35:47 +08:00
wangdan-fit2cloud 7be349c937
perf: 快速修改文档名称和问题,支持回车保存 2024-04-22 14:59:51 +08:00
shaohuzhang1 bc57f17337
fix: 分词检索历史数据处理 (#203) 2024-04-22 14:45:53 +08:00
shaohuzhang1 c682d44671
fix: 应用修改时保存提示未携带检索模式 (#201) 2024-04-22 14:00:58 +08:00
shaohuzhang1 df54fd2b54
fix: 对话API调用,输出报错 #192 (#200) 2024-04-22 13:52:46 +08:00
shaohuzhang1 35c1078e1f
perf: 优化模型设置的添加/修改模型的提示 (#197) 2024-04-22 12:02:25 +08:00
Brian Yang af650f58c1
perf: 优化模型设置的添加/修改模型的提示 (#193) 2024-04-22 11:32:35 +08:00
shaohuzhang1 c89ae29429
feat: 增加全文检索和混合检索方式 2024-04-22 11:21:24 +08:00
shaohuzhang1 8fe1a147ff
feat: 支持讯飞星火大模型 #181 (#184) 2024-04-19 16:43:31 +08:00
shaohuzhang1 4aa1b58ae5
feat: 支持智谱大模型 #178 (#180) 2024-04-19 14:43:06 +08:00
baixin 73cf7d84e2
Update README.md
更新 Readme 支持的模型
2024-04-19 10:28:09 +08:00
wangdan-fit2cloud 02125c64e5
feat: 【应用】对话日志保存到文档下拉选项支持搜索 (#123)
* feat: 【应用】对话日志保存至文档选项支持搜索(#123)

* feat: 【应用】对话日志保存到文档下拉选项支持搜索 (#123)
2024-04-18 19:13:31 +08:00
shaohuzhang1 39f573610d
feat: 增加首次进入系统强制修改用户密码功能(#3) 2024-04-18 18:34:15 +08:00
liqiang-fit2cloud 0892a0eb72 Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-04-18 17:43:22 +08:00
shaohuzhang1 553af5f783
fix: 固定pymupdf版本 (#159) 2024-04-18 17:06:37 +08:00
wangdan-fit2cloud b7199468ef
perf: 【命中测试】优化提示内容(#112) 2024-04-18 15:57:44 +08:00
shaohuzhang1 0b083eecee
fix: 修复openai模型在对接其他兼容openai接口平台时获取tokens错误 (#157) 2024-04-18 15:41:48 +08:00
shaohuzhang1 d214e31f71
perf: 优化AI回答 #132 (#155) 2024-04-18 15:01:54 +08:00
shaohuzhang1 1a291997f3
feat: 支持阿里通义大模型 #42 (#154)
* feat: 支持阿里通义大模型 #42
2024-04-18 11:56:46 +08:00
SimonGino 57ecf4adb7
feat: 支持对接 KIMI 模型 (#152)
* feat: 支持对接 KIMI 模型
2024-04-18 11:44:13 +08:00
wangdan-fit2cloud 6c0b7da67f
fix: 知识库问答问题限制字符数量(#148) 2024-04-18 11:28:10 +08:00
wangdan-fit2cloud 10408c5711
feat: 【知识库】上传文档时,支持选择文件夹(#36) 2024-04-18 11:09:33 +08:00
wangdan-fit2cloud 621421cf50
perf: 样式优化 (#149) 2024-04-17 21:35:03 +08:00
shaohuzhang1 df850894c6
fix: 支持 OpenAI 兼容模型 #142 (#146) 2024-04-17 17:14:01 +08:00
maninhill 8e55a2c9eb
Merge pull request #145 from ibuler/patch-1
doc: Update README.md
2024-04-17 17:02:02 +08:00
老广 b84aa9f7c9
doc: Update README.md
Add our other projects
2024-04-17 16:59:11 +08:00
shaohuzhang1 86681d9bf8
fix: 去除应用内嵌 (#143) 2024-04-17 15:54:58 +08:00
wangdan-fit2cloud a1681fef62
perf: 部分线条样式优化(#105) (#139) 2024-04-17 15:21:23 +08:00
wangdan-fit2cloud 0e4ab4f1c5
perf: 导航栏增加用户手册、项目地址、论坛求助入口(#83) (#138) 2024-04-17 14:35:44 +08:00
shaohuzhang1 3dc9b166f2
fix: 【应用】问答页面在回答中...时,点击停止回答不生效 #109 (#136) 2024-04-17 13:05:19 +08:00
wangdan-fit2cloud 80ff9c5eae
fix:【问题管理】添加关联问题时,问题过长下拉组件样式优化(#80) (#129) 2024-04-17 10:43:57 +08:00
feng626 11f0a82e68
perf: Optimize the writing method of getting HTTP_AUTHORIZATION (#114) 2024-04-16 22:55:34 +08:00
shaohuzhang1 5e499e6afa
fix: PDF上传知识库开始导入接口报错 #122 (#125) 2024-04-16 20:59:27 +08:00
wangdan-fit2cloud 5b7ae292ec
fix: 【知识库】当文档为空时,关联分段错误修复 (#124) 2024-04-16 18:44:54 +08:00
wangdan-fit2cloud 9cd15a8894
fix: 【应用】问答页面用户提问时,只输入空格不能发送 (#121) 2024-04-16 16:56:19 +08:00
wangdan-fit2cloud d16aaa4597 fix: typos 2024-04-16 14:09:12 +08:00
maninhill 9f32b28cc0
Merge pull request #117 from 1myuan/main
style: 简化样式代码
2024-04-16 12:44:07 +08:00
teukkk efdc9f30d2 style: 简化样式代码 2024-04-16 10:17:19 +08:00
liqiang-fit2cloud bb2b056cff Merge branch 'main' of https://github.com/maxkb-dev/maxkb 2024-04-16 09:47:19 +08:00
maninhill 3e21722277
Merge pull request #116 from fit2cloudwxx/@pr_perf_text
perf: 优化提示和待办描述
2024-04-16 08:55:25 +08:00
xinxin.wu a2b5addaff perf: 优化提示和待办描述 2024-04-15 21:59:44 +08:00
shaohuzhang1 3d28d2527b
fix: typos
* fix: typos
2024-04-15 19:06:42 +08:00
wangdan-fit2cloud e15dc64be9 fix: typos 2024-04-15 18:46:03 +08:00
Bryan 493939017e
fix: Support config.yml, config.yaml (#111) 2024-04-15 18:05:50 +08:00
maninhill 4da7e6fa4b
Merge pull request #110 from xuwei-fit2cloud/main
chore: 增加拼写检测Action
2024-04-15 17:59:21 +08:00
xuwei-fit2cloud e4123dfb54
chore: 增加拼写检测Action 2024-04-15 17:34:49 +08:00
WangXu10 731801a977
Update tsconfig.vitest.json config (#104) 2024-04-15 16:53:35 +08:00
Eric_Lee dfb04b1052
perf: 优化代码和错误提示 (#101) 2024-04-15 16:53:26 +08:00
song-cc-rock 2375b470b0
Update tsconfig.app.json config (#100) 2024-04-15 16:53:18 +08:00
王嘉豪 c02ce1d181
docs: 修改单词拼写 (#99) 2024-04-15 16:53:07 +08:00
无故事国国王 b50eddf90e
chore(TS): skipLibCheck (#97) 2024-04-15 16:52:58 +08:00
ssongliu 879d9a7d9c
style: 简化样式代码 (#96) 2024-04-15 16:52:41 +08:00
Camus Cheung 27c43bf79f
docs: Fix typo in README.md (#95) 2024-04-15 16:52:27 +08:00
shaohuzhang1 b43b8ec83b Merge branch 'main' of github.com:1Panel-dev/MaxKB 2024-04-15 16:36:02 +08:00
liqiang-fit2cloud 4e52f253e5 build: change workflow. 2024-04-15 16:30:58 +08:00
liqiang-fit2cloud e205095bad build: change workflow. 2024-04-15 16:19:28 +08:00
shaohuzhang1 117863ed4c Merge branch 'main' of github.com:1Panel-dev/MaxKB 2024-04-15 16:02:25 +08:00
liqiang-fit2cloud 15ccc3dd1c build: remove useless file. 2024-04-15 15:59:10 +08:00
liqiang-fit2cloud 32dee8e056 Merge remote-tracking branch 'origin/main' 2024-04-15 15:58:36 +08:00
wangdan-fit2cloud 5164955206
Merge pull request #93 from 1Panel-dev/pr@main@fix-bugs
fix: 修复文档为空的情况#92
2024-04-15 15:58:35 +08:00
liqiang-fit2cloud c909b64ca0 Revert "Update .gitignore (#79)"
This reverts commit 4be261be43.
2024-04-15 15:58:04 +08:00
maninhill 34143495fe
Merge pull request #88 from AgAngle/main
docs: 修改注释中的错别字
2024-04-15 15:57:37 +08:00
maninhill 85fecfc253
Merge pull request #89 from tjlygdx/main
fix: 统一为中文简体
2024-04-15 15:57:24 +08:00
wangdan-fit2cloud 29f804df9e fix: 修复文档为空的情况 2024-04-15 15:57:14 +08:00
maninhill b38b571a27
Merge pull request #91 from wisonic-s/main
fix: typos
2024-04-15 15:57:04 +08:00
maninhill 0921ff6d8e
Merge pull request #86 from zhengkunwang223/pr@dev@change_config
fix: 删除多余的注释
2024-04-15 15:56:52 +08:00
wisonic-s 70a210c534 fix: typos 2024-04-15 15:50:33 +08:00
wangdan-fit2cloud 116cd1c714
Merge pull request #87 from 1Panel-dev/pr@main@fit-filename
fix: 文件名修改
2024-04-15 15:45:23 +08:00
taojinlong 944ba01661 fix: 统一为中文简体 2024-04-15 15:43:37 +08:00
zhengkunwang223 deb2c8cb27 删除多余的注释 2024-04-15 15:40:53 +08:00
wangdan-fit2cloud abbb4ca64a fix: 文件名修改 2024-04-15 15:40:15 +08:00
AgAngle bd39580ec0 docs: 修改注释中的错别字 2024-04-15 15:40:00 +08:00
maninhill 097a7863fb
Merge pull request #84 from xuwei-fit2cloud/main
fix: typos
2024-04-15 15:39:32 +08:00
maninhill 55ebee5e0e
Merge pull request #85 from xiaomeinvG/main
docs: 修复注释中的错别字 (#80)
2024-04-15 15:39:20 +08:00
maninhill ec68915b0e
Merge pull request #82 from dataeaseShu/pr@main_delete_comment
fix(dataset): 删除注释
2024-04-15 15:39:04 +08:00
xuwei-fit2cloud 0a378f48c7 fix: typos 2024-04-15 15:35:36 +08:00
dataeaseShu feb4081016 fix(dataset): 删除注释 2024-04-15 15:35:27 +08:00
maninhill 5b54ffcfed
Merge pull request #81 from xuwei-fit2cloud/main
fix: typos
2024-04-15 15:29:12 +08:00
guoyuqi 895ba2f47a docs: 修复注释中的错别字 (#80) 2024-04-15 15:28:11 +08:00
xuwei-fit2cloud 6072fd53bd fix: typos 2024-04-15 15:26:46 +08:00
shaohuzhang1 d0e7248010 Merge branch 'main' of github.com:1Panel-dev/MaxKB 2024-04-15 14:52:34 +08:00
wxg0103 765ae8c79f
docs: 修改注释的错别字 (#78) 2024-04-15 14:51:09 +08:00
老广 4be261be43
Update .gitignore (#79)
deps: poetry.lock should be commit
2024-04-15 14:50:53 +08:00
fit2cloud-chenyw 930817a3c5
fix: typo-total拼写错误 (#76) 2024-04-15 14:42:57 +08:00
w940853815 49647ea4f9
typo:application_id,application_name (#75) 2024-04-15 14:42:49 +08:00
Craftsman fc63b15e7f
refactor: remove unused element (#74) 2024-04-15 14:42:39 +08:00
建国 9c830366b3
docs: 修复注释中的错别字 (#73) 2024-04-15 14:42:26 +08:00
liqiang-fit2cloud df7ed3c845
Merge pull request #71 from zhangliqiang/patch-1
build: Update .dockerignore
2024-04-15 14:23:31 +08:00
shaohuzhang1 c226a49af7
Pr@main@fix hit test (#70)
* fix: 应用命中测试报没有权限访问 #65
2024-04-15 14:18:33 +08:00
zhangliqiang dc988a0f99
build: Update .dockerignore
remove useless directory.
2024-04-15 14:17:59 +08:00
shaohuzhang1 ec6ce7bf5e fix: 应用命中测试报没有权限访问 #65 2024-04-15 14:16:44 +08:00
shaohuzhang1 7b6dcc64d2 Merge branch 'main' of github.com:1Panel-dev/MaxKB 2024-04-15 13:59:21 +08:00
shaohuzhang1 196a7c73ff
Pr@main@list search (#68)
* fix: type

* fix: 本地搜索对英文大小写敏感#57
2024-04-15 13:58:40 +08:00
shaohuzhang1 5bf79797ae Merge branch 'main' of github.com:1Panel-dev/MaxKB 2024-04-15 13:45:38 +08:00
shaohuzhang1 c96442d6aa
fix: type (#67) 2024-04-15 13:45:23 +08:00
shaohuzhang1 05972ea017 fix: type 2024-04-15 13:44:52 +08:00
shaohuzhang1 3afdab8acf
fix: 添加分段时无法关联问题 #53 (#66) 2024-04-15 13:23:37 +08:00
Ikko Eltociear Ashimine f19e78b692
refactor: fix typo (#64) 2024-04-15 10:59:50 +08:00
shaohuzhang1 142c999b95
fix: 在线知识库全量同步无法使用 #51 (#62) 2024-04-15 10:39:21 +08:00
liqiang-fit2cloud 7b644aeb8d build: 尝试优化镜像大小 2024-04-11 18:18:42 +08:00
maninhill 5b2a0c8088
Merge pull request #44 from 1Panel-dev/maninhill-patch-1
chore: Update README.md
2024-04-11 14:43:03 +08:00
maninhill 942af67812
chore: Update README.md 2024-04-11 14:42:52 +08:00
1221 changed files with 110002 additions and 9038 deletions

View File

@ -1 +1,2 @@
.git*
.idea*

View File

@ -1,61 +1,50 @@
name: BUG 提交
description: 提交产品缺陷帮助我们更好的改进
title: "[BUG]"
labels: "类型: 缺陷"
assignees: baixin513
name: 'Bug Report'
description: 'Report an Bug'
title: "[Bug] "
assignees: zyyfit
body:
- type: markdown
id: contacts_title
attributes:
value: "## 联系方式"
value: "## Contact Information"
- type: input
id: contacts
validations:
required: false
attributes:
label: "联系方式"
description: "可以快速联系到您的方式:交流群号及昵称、邮箱等"
label: "Contact Information"
description: "The ways to quickly contact you: WeChat group number and nickname, email, etc."
- type: markdown
id: environment
attributes:
value: "## 环境信息"
value: "## Environment Information"
- type: input
id: version
validations:
required: true
attributes:
label: "MaxKB 版本"
description: "登录 MaxKB Web 控制台,在右上角关于页面查看当前版本。"
label: "MaxKB Version"
description: "Log in to the MaxKB Web Console and check the current version on the `About` page in the top right corner."
- type: markdown
id: details
attributes:
value: "## 详细信息"
value: "## Detailed information"
- type: textarea
id: what-happened
attributes:
label: "问题描述"
description: "简要描述您碰到的问题"
label: "Problem Description"
description: "Briefly describe the issue youve encountered."
validations:
required: true
- type: textarea
id: how-happened
attributes:
label: "重现步骤"
description: "如果操作可以重现该问题"
label: "Steps to Reproduce"
description: "How can this issue be reproduced."
validations:
required: true
- type: textarea
id: expect
attributes:
label: "期待的正确结果"
label: "The expected correct result"
- type: textarea
id: logs
attributes:
label: "相关日志输出"
description: "请复制并粘贴任何相关的日志输出。 这将自动格式化为代码,因此无需反引号。"
label: "Related log output"
description: "Please paste any relevant log output here. It will automatically be formatted as code, so no backticks are necessary."
render: shell
- type: textarea
id: additional-information
attributes:
label: "附加信息"
description: "如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。"
label: "Additional Information"
description: "If you have any additional information to provide, you can include it here (screenshots, videos, etc., are welcome)."

View File

@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: 对 MaxKB 项目有其他问题
url: https://bbs.fit2cloud.com/c/mk/11
about: 如果你对 MaxKB 有其他想要提问的,我们欢迎到我们的官方社区进行提问。
- name: Questions & Discussions
url: https://github.com/1Panel-dev/MaxKB/discussions
about: Raise questions about the installation, deployment, use and other aspects of the project.

View File

@ -1,36 +1,29 @@
name: 需求建议
description: 提出针对本项目的想法和建议
title: "[FEATURE]"
labels: enhancement
name: 'Feature Request'
description: 'Suggest an idea'
title: '[Feature] '
assignees: baixin513
body:
- type: markdown
id: environment
attributes:
value: "## 环境信息"
value: "## Environment Information"
- type: input
id: version
validations:
required: true
attributes:
label: "MaxKB 版本"
description: "登录 MaxKB Web 控制台,在右上角关于页面查看当前版本。"
label: "MaxKB Version"
description: "Log in to the MaxKB Web Console and check the current version on the `About` page in the top right corner."
- type: markdown
id: details
attributes:
value: "## 详细信息"
value: "## Detailed information"
- type: textarea
id: description
attributes:
label: "请描述您的需求或者改进建议"
label: "Please describe your needs or suggestions for improvements"
validations:
required: true
- type: textarea
id: solution
attributes:
label: "请描述你建议的实现方案"
label: "Please describe the solution you suggest"
- type: textarea
id: additional-information
attributes:
label: "附加信息"
description: "如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。"
label: "Additional Information"
description: "If you have any additional information to provide, you can include it here (screenshots, videos, etc., are welcome)."

17
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,17 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
timezone: "Asia/Shanghai"
day: "friday"
target-branch: "v2"
groups:
python-dependencies:
patterns:
- "*"
# ignore:
# - dependency-name: "pymupdf"
# versions: ["*"]

View File

@ -14,7 +14,7 @@ on:
- linux/amd64,linux/arm64
jobs:
build-and-push-python-pg-to-ghcr:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- name: Check Disk Space
run: df -h
@ -39,7 +39,7 @@ jobs:
run: |
DOCKER_IMAGE=ghcr.io/1panel-dev/maxkb-python-pg
DOCKER_PLATFORMS=${{ github.event.inputs.architecture }}
TAG_NAME=python3.11-pg15.6
TAG_NAME=python3.11-pg15.8
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME} --tag ${DOCKER_IMAGE}:latest"
echo ::set-output name=docker_image::${DOCKER_IMAGE}
echo ::set-output name=version::${TAG_NAME}
@ -50,6 +50,9 @@ jobs:
${DOCKER_IMAGE_TAGS} .
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
# Until https://github.com/tonistiigi/binfmt/issues/215
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry

View File

@ -19,7 +19,7 @@ on:
jobs:
build-and-push-vector-model-to-ghcr:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- name: Check Disk Space
run: df -h
@ -55,6 +55,9 @@ jobs:
${DOCKER_IMAGE_TAGS} .
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
# Until https://github.com/tonistiigi/binfmt/issues/215
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry

View File

@ -1,12 +1,19 @@
name: build-and-push
run-name: 构建镜像并推送仓库 ${{ github.event.inputs.dockerImageTag }} (${{ github.event.inputs.registry }})
on:
workflow_dispatch:
inputs:
dockerImageTag:
description: 'Docker Image Tag'
default: 'v1.0.0-dev'
description: 'Image Tag'
default: 'v1.10.7-dev'
required: true
dockerImageTagWithLatest:
description: '是否发布latest tag正式发版时选择测试版本切勿选择'
default: false
required: true
type: boolean
architecture:
description: 'Architecture'
required: true
@ -19,11 +26,11 @@ on:
registry:
description: 'Push To Registry'
required: true
default: 'dockerhub'
default: 'fit2cloud-registry'
type: choice
options:
- dockerhub
- fit2cloud-registry
- dockerhub
- dockerhub, fit2cloud-registry
jobs:
@ -48,20 +55,21 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
ref: main
ref: ${{ github.ref_name }}
- name: Prepare
id: prepare
run: |
DOCKER_IMAGE=registry-hkproxy.fit2cloud.com/maxkb/maxkb
DOCKER_IMAGE=${{ secrets.FIT2CLOUD_REGISTRY_HOST }}/maxkb/maxkb
DOCKER_PLATFORMS=${{ github.event.inputs.architecture }}
TAG_NAME=${{ github.event.inputs.dockerImageTag }}
if [[ ${TAG_NAME} == *dev* ]]; then
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME}"
TAG_NAME_WITH_LATEST=${{ github.event.inputs.dockerImageTagWithLatest }}
if [[ ${TAG_NAME_WITH_LATEST} == 'true' ]]; then
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME} --tag ${DOCKER_IMAGE}:${TAG_NAME%%.*}"
else
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME} --tag ${DOCKER_IMAGE}:latest"
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME}"
fi
echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} \
--build-arg DOCKER_IMAGE_TAG=${{ github.event.inputs.dockerImageTag }} --build-arg BUILD_AT=$(TZ=Asia/Shanghai date +'%Y-%m-%dT%H:%M') --build-arg GITHUB_COMMIT=${GITHUB_SHA::8} --no-cache \
echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} --memory-swap -1 \
--build-arg DOCKER_IMAGE_TAG=${{ github.event.inputs.dockerImageTag }} --build-arg BUILD_AT=$(TZ=Asia/Shanghai date +'%Y-%m-%dT%H:%M') --build-arg GITHUB_COMMIT=`git rev-parse --short HEAD` --no-cache \
${DOCKER_IMAGE_TAGS} .
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
@ -76,11 +84,12 @@ jobs:
- name: Login to FIT2CLOUD Registry
uses: docker/login-action@v3
with:
registry: registry-hkproxy.fit2cloud.com
registry: ${{ secrets.FIT2CLOUD_REGISTRY_HOST }}
username: ${{ secrets.FIT2CLOUD_REGISTRY_USERNAME }}
password: ${{ secrets.FIT2CLOUD_REGISTRY_PASSWORD }}
- name: Docker Buildx (build-and-push)
run: |
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches && free -m
docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} -f installer/Dockerfile
build-and-push-to-dockerhub:
@ -104,20 +113,21 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
ref: main
ref: ${{ github.ref_name }}
- name: Prepare
id: prepare
run: |
DOCKER_IMAGE=1panel/maxkb
DOCKER_PLATFORMS=${{ github.event.inputs.architecture }}
TAG_NAME=${{ github.event.inputs.dockerImageTag }}
if [[ ${TAG_NAME} == *dev* ]]; then
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME}"
TAG_NAME_WITH_LATEST=${{ github.event.inputs.dockerImageTagWithLatest }}
if [[ ${TAG_NAME_WITH_LATEST} == 'true' ]]; then
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME} --tag ${DOCKER_IMAGE}:${TAG_NAME%%.*}"
else
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME} --tag ${DOCKER_IMAGE}:latest"
DOCKER_IMAGE_TAGS="--tag ${DOCKER_IMAGE}:${TAG_NAME}"
fi
echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} \
--build-arg DOCKER_IMAGE_TAG=${{ github.event.inputs.dockerImageTag }} --build-arg BUILD_AT=$(TZ=Asia/Shanghai date +'%Y-%m-%dT%H:%M') --build-arg GITHUB_COMMIT=${GITHUB_SHA::8} --no-cache \
echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} --memory-swap -1 \
--build-arg DOCKER_IMAGE_TAG=${{ github.event.inputs.dockerImageTag }} --build-arg BUILD_AT=$(TZ=Asia/Shanghai date +'%Y-%m-%dT%H:%M') --build-arg GITHUB_COMMIT=`git rev-parse --short HEAD` --no-cache \
${DOCKER_IMAGE_TAGS} .
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
@ -136,4 +146,5 @@ jobs:
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker Buildx (build-and-push)
run: |
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches && free -m
docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} -f installer/Dockerfile

View File

@ -0,0 +1,17 @@
on:
push:
branches:
- 'pr@**'
- 'repr@**'
name: 针对特定分支名自动创建 PR
jobs:
generic_handler:
name: 自动创建 PR
runs-on: ubuntu-latest
steps:
- name: Create pull request
uses: jumpserver/action-generic-handler@master
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}

14
.github/workflows/issue-translator.yml vendored Normal file
View File

@ -0,0 +1,14 @@
name: Issue Translator
on:
issue_comment:
types: [created]
issues:
types: [opened]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: usthe/issues-translate-action@v2.7
with:
IS_MODIFY_TITLE: true
BOT_GITHUB_TOKEN: ${{ secrets.FIT2CLOUDRD_LLM_CODE_REVIEW_TOKEN }}

28
.github/workflows/llm-code-review.yml vendored Normal file
View File

@ -0,0 +1,28 @@
name: LLM Code Review
permissions:
contents: read
pull-requests: write
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
llm-code-review:
runs-on: ubuntu-latest
steps:
- uses: fit2cloud/LLM-CodeReview-Action@main
env:
GITHUB_TOKEN: ${{ secrets.FIT2CLOUDRD_LLM_CODE_REVIEW_TOKEN }}
OPENAI_API_KEY: ${{ secrets.ALIYUN_LLM_API_KEY }}
LANGUAGE: English
OPENAI_API_ENDPOINT: https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL: qwen2.5-coder-3b-instruct
PROMPT: "Please check the following code for any irregularities, potential issues, or optimization suggestions, and provide your answers in English."
top_p: 1
temperature: 1
# max_tokens: 10000
MAX_PATCH_LENGTH: 10000
IGNORE_PATTERNS: "/node_modules,*.md,/dist,/.github"
FILE_PATTERNS: "*.java,*.go,*.py,*.vue,*.ts,*.js,*.css,*.scss,*.html"

18
.github/workflows/typos_check.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: Typos Check
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]
jobs:
run:
name: Spell Check with Typos
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@v2
- name: Check spelling
uses: crate-ci/typos@master

6
.gitignore vendored
View File

@ -42,7 +42,7 @@ share/python-wheels/
MANIFEST
# PyInstaller
# Usually these files are written by a python script froms a template
# Usually these files are written by a python script forms a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
@ -178,6 +178,10 @@ ui/node_modules
ui/dist
apps/static
models/
apps/xpack
!apps/**/models/
data
.dev
poetry.lock
apps/setting/models_provider/impl/*/icon/
tmp/

4
.typos.toml Normal file
View File

@ -0,0 +1,4 @@
[files]
extend-exclude = [
'apps/setting/models_provider/impl/*/icon/*'
]

128
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
support@fit2cloud.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

30
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,30 @@
# Contributing
As a contributor, you should agree that:
- The producer can adjust the open-source agreement to be more strict or relaxed as deemed necessary.
- Your contributed code may be used for commercial purposes, including but not limited to its cloud business operations.
## Create pull request
PR are always welcome, even if they only contain small fixes like typos or a few lines of code. If there will be a significant effort, please document it as an issue and get a discussion going before starting to work on it.
Please submit a PR broken down into small changes bit by bit. A PR consisting of a lot of features and code changes may be hard to review. It is recommended to submit PRs in an incremental fashion.
This [development guideline](https://github.com/1Panel-dev/MaxKB/wiki/3-%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA) contains information about repository structure, how to set up development environment, how to run it, and more.
Note: If you split your pull request to small changes, please make sure any of the changes goes to master will not break anything. Otherwise, it can not be merged until this feature complete.
## Report issues
It is a great way to contribute by reporting an issue. Well-written and complete bug reports are always welcome! Please open an issue and follow the template to fill in required information.
Before opening any issue, please look up the existing issues to avoid submitting a duplication.
If you find a match, you can "subscribe" to it to get notified on updates. If you have additional helpful information about the issue, please leave a comment.
When reporting issues, always include:
* Which version you are using.
* Steps to reproduce the issue.
* Snapshots or log files if needed
Because the issues are open to the public, when submitting files, be sure to remove any sensitive information, e.g. user name, password, IP address, and company name. You can
replace those parts with "REDACTED" or other strings like "****".

123
README.md
View File

@ -1,58 +1,119 @@
<p align="center"><img src= "https://github.com/1Panel-dev/maxkb/assets/52996290/c0694996-0eed-40d8-b369-322bf2a380bf" alt="MaxKB" width="300" /></p>
<h3 align="center">基于 LLM 大语言模型的知识库问答系统</h3>
<h3 align="center">Open-source platform for building enterprise-grade agents</h3>
<h3 align="center">强大易用的企业级智能体平台</h3>
<p align="center"><a href="https://trendshift.io/repositories/9113" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9113" alt="1Panel-dev%2FMaxKB | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a></p>
<p align="center">
<a href="https://www.gnu.org/licenses/old-licenses/gpl-3.0"><img src="https://img.shields.io/github/license/1Panel-dev/maxkb?color=%231890FF" alt="License: GPL v3"></a>
<a href="https://app.codacy.com/gh/1Panel-dev/maxkb?utm_source=github.com&utm_medium=referral&utm_content=1Panel-dev/maxkb&utm_campaign=Badge_Grade_Dashboard"><img src="https://app.codacy.com/project/badge/Grade/da67574fd82b473992781d1386b937ef" alt="Codacy"></a>
<a href="https://www.gnu.org/licenses/gpl-3.0.html#license-text"><img src="https://img.shields.io/github/license/1Panel-dev/maxkb?color=%231890FF" alt="License: GPL v3"></a>
<a href="https://github.com/1Panel-dev/maxkb/releases/latest"><img src="https://img.shields.io/github/v/release/1Panel-dev/maxkb" alt="Latest release"></a>
<a href="https://github.com/1Panel-dev/maxkb"><img src="https://img.shields.io/github/stars/1Panel-dev/maxkb?color=%231890FF&style=flat-square" alt="Stars"></a>
<a href="https://hub.docker.com/r/1panel/maxkb"><img src="https://img.shields.io/docker/pulls/1panel/maxkb?label=downloads" alt="Download"></a>
<a href="https://hub.docker.com/r/1panel/maxkb"><img src="https://img.shields.io/docker/pulls/1panel/maxkb?label=downloads" alt="Download"></a><br/>
[<a href="/README_CN.md">中文(简体)</a>] | [<a href="/README.md">English</a>]
</p>
<hr/>
MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB = Max Knowledge Base旨在成为企业的最强大脑。
MaxKB = Max Knowledge Brain, it is an open-source platform for building enterprise-grade agents. MaxKB integrates Retrieval-Augmented Generation (RAG) pipelines, supports robust workflows, and provides advanced MCP tool-use capabilities. MaxKB is widely applied in scenarios such as intelligent customer service, corporate internal knowledge bases, academic research, and education.
- **开箱即用**:支持直接上传文档、自动爬取在线文档,支持文本自动拆分、向量化,智能问答交互体验好;
- **无缝嵌入**:支持零编码快速嵌入到第三方业务系统;
- **多模型支持**:支持对接主流的大模型,包括本地私有大模型(如 Llama 2、Azure OpenAI 和百度千帆大模型等。
- **RAG Pipeline**: Supports direct uploading of documents / automatic crawling of online documents, with features for automatic text splitting, vectorization. This effectively reduces hallucinations in large models, providing a superior smart Q&A interaction experience.
- **Agentic Workflow**: Equipped with a powerful workflow engine, function library and MCP tool-use, enabling the orchestration of AI processes to meet the needs of complex business scenarios.
- **Seamless Integration**: Facilitates zero-coding rapid integration into third-party business systems, quickly equipping existing systems with intelligent Q&A capabilities to enhance user satisfaction.
- **Model-Agnostic**: Supports various large models, including private models (such as DeepSeek, Llama, Qwen, etc.) and public models (like OpenAI, Claude, Gemini, etc.).
- **Multi Modal**: Native support for input and output text, image, audio and video.
## 快速开始
## Quick start
```
docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data 1panel/maxkb
Execute the script below to start a MaxKB container using Docker:
# 用户名: admin
# 密码: MaxKB@123..
```bash
docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages 1panel/maxkb
```
你也可以通过 [1Panel 应用商店](https://apps.fit2cloud.com/1panel) 快速部署 MaxKB + Ollama + Llama 230 分钟内即可上线基于本地大模型的知识库问答系统,并嵌入到第三方业务系统中。
Access MaxKB web interface at `http://your_server_ip:8080` with default admin credentials:
你也可以在线体验:[DataEase 小助手](https://dataease.io/docs/v2/),它是基于 MaxKB 搭建的智能问答系统,已经嵌入到 DataEase 产品及在线文档中。
- username: admin
- password: MaxKB@123..
如你有更多问题,可以查看使用手册,或者通过论坛与我们交流
中国用户如遇到 Docker 镜像 Pull 失败问题,请参照该 [离线安装文档](https://maxkb.cn/docs/installation/offline_installtion/) 进行安装
- [使用手册](https://github.com/1Panel-dev/MaxKB/wiki/1-%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2)
- [论坛求助](https://bbs.fit2cloud.com/c/mk/11)
## UI 展示
## Screenshots
<table style="border-collapse: collapse; border: 1px solid black;">
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/1Panel-dev/MaxKB/assets/80892890/2b893a25-ae46-48da-b6a1-61d23015565e" alt="MaxKB Demo1" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/1Panel-dev/MaxKB/assets/80892890/3e50e7ff-cdc4-4a37-b430-d84975f11d4e" alt="MaxKB Demo2" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://maxkb.hk/images/overview.png" alt="MaxKB Demo1" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://maxkb.hk/images/screenshot-models.png" alt="MaxKB Demo2" /></td>
</tr>
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/1Panel-dev/MaxKB/assets/80892890/dfdcc03f-ef36-4f75-bb82-797c0f9da1ad" alt="MaxKB Demo3" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/1Panel-dev/MaxKB/assets/80892890/884a9db1-3f93-4013-bc8f-a3f0dbcfeb2f" alt="MaxKB Demo4" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://maxkb.hk/images/screenshot-knowledge.png" alt="MaxKB Demo3" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://maxkb.hk/images/screenshot-function.png" alt="MaxKB Demo4" /></td>
</tr>
</table>
## 技术栈
## Technical stack
- 前端:[Vue.js](https://cn.vuejs.org/)
- 后端:[Python / Django](https://www.djangoproject.com/)
- Langchain[Langchain](https://www.langchain.com/)
- 向量数据库:[PostgreSQL / pgvector](https://www.postgresql.org/)
- 大模型Azure OpenAI、百度千帆大模型、[Ollama](https://github.com/ollama/ollama)
- Frontend[Vue.js](https://vuejs.org/)
- Backend[Python / Django](https://www.djangoproject.com/)
- LLM Framework[LangChain](https://www.langchain.com/)
- Database[PostgreSQL + pgvector](https://www.postgresql.org/)
## Feature Comparison
<table style="width: 100%;">
<tr>
<th align="center">Feature</th>
<th align="center">LangChain</th>
<th align="center">Dify.AI</th>
<th align="center">Flowise</th>
<th align="center">MaxKB <br>Built upon LangChain</th>
</tr>
<tr>
<td align="center">Supported LLMs</td>
<td align="center">Rich Variety</td>
<td align="center">Rich Variety</td>
<td align="center">Rich Variety</td>
<td align="center">Rich Variety</td>
</tr>
<tr>
<td align="center">RAG Engine</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">Agent</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">Workflow</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">Observability</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">SSO/Access control</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center">✅ (Pro)</td>
</tr>
<tr>
<td align="center">On-premise Deployment</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
</table>
## Star History
@ -60,8 +121,6 @@ docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data 1pa
## License
Copyright (c) 2014-2024 飞致云 FIT2CLOUD, All rights reserved.
Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
<https://www.gnu.org/licenses/gpl-3.0.html>

89
README_CN.md Normal file
View File

@ -0,0 +1,89 @@
<p align="center"><img src= "https://github.com/1Panel-dev/maxkb/assets/52996290/c0694996-0eed-40d8-b369-322bf2a380bf" alt="MaxKB" width="300" /></p>
<h3 align="center">强大易用的企业级智能体平台</h3>
<p align="center">
<a href="https://trendshift.io/repositories/9113" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9113" alt="1Panel-dev%2FMaxKB | Trendshift" style="width: 250px; height: auto;" /></a>
</p>
<p align="center">
<a href="README_EN.md"><img src="https://img.shields.io/badge/English_README-blue" alt="English README"></a>
<a href="https://www.gnu.org/licenses/gpl-3.0.html#license-text"><img src="https://img.shields.io/github/license/1Panel-dev/maxkb?color=%231890FF" alt="License: GPL v3"></a>
<a href="https://github.com/1Panel-dev/maxkb/releases/latest"><img src="https://img.shields.io/github/v/release/1Panel-dev/maxkb" alt="Latest release"></a>
<a href="https://github.com/1Panel-dev/maxkb"><img src="https://img.shields.io/github/stars/1Panel-dev/maxkb?style=flat-square" alt="Stars"></a>
<a href="https://hub.docker.com/r/1panel/maxkb"><img src="https://img.shields.io/docker/pulls/1panel/maxkb?label=downloads" alt="Download"></a>
<a href="https://gitee.com/fit2cloud-feizhiyun/MaxKB"><img src="https://gitee.com/fit2cloud-feizhiyun/MaxKB/badge/star.svg?theme=gvp" alt="Gitee Stars"></a>
<a href="https://gitcode.com/feizhiyun/MaxKB"><img src="https://gitcode.com/feizhiyun/MaxKB/star/badge.svg" alt="GitCode Stars"></a>
</p>
<hr/>
MaxKB = Max Knowledge Brain是一款强大易用的企业级智能体平台支持 RAG 检索增强生成、工作流编排、MCP 工具调用能力。MaxKB 支持对接各种主流大语言模型,广泛应用于智能客服、企业内部知识库问答、员工助手、学术研究与教育等场景。
- **RAG 检索增强生成**:高效搭建本地 AI 知识库,支持直接上传文档 / 自动爬取在线文档,支持文本自动拆分、向量化,有效减少大模型幻觉,提升问答效果;
- **灵活编排**:内置强大的工作流引擎、函数库和 MCP 工具调用能力,支持编排 AI 工作过程,满足复杂业务场景下的需求;
- **无缝嵌入**:支持零编码快速嵌入到第三方业务系统,让已有系统快速拥有智能问答能力,提高用户满意度;
- **模型中立**支持对接各种大模型包括本地私有大模型DeepSeek R1 / Llama 3 / Qwen 2 等)、国内公共大模型(通义千问 / 腾讯混元 / 字节豆包 / 百度千帆 / 智谱 AI / Kimi 等和国外公共大模型OpenAI / Claude / Gemini 等)。
MaxKB 三分钟视频介绍https://www.bilibili.com/video/BV18JypYeEkj/
## 快速开始
```
# Linux 机器
docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/maxkb/maxkb
# Windows 机器
docker run -d --name=maxkb --restart=always -p 8080:8080 -v C:/maxkb:/var/lib/postgresql/data -v C:/python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/maxkb/maxkb
# 用户名: admin
# 密码: MaxKB@123..
```
- 你也可以通过 [1Panel 应用商店](https://apps.fit2cloud.com/1panel) 快速部署 MaxKB
- 如果是内网环境,推荐使用 [离线安装包](https://community.fit2cloud.com/#/products/maxkb/downloads) 进行安装部署;
- MaxKB 产品版本分为社区版和专业版,详情请参见:[MaxKB 产品版本对比](https://maxkb.cn/pricing.html)
- 如果您需要向团队介绍 MaxKB可以使用这个 [官方 PPT 材料](https://maxkb.cn/download/introduce-maxkb_202503.pdf)。
如你有更多问题,可以查看使用手册,或者通过论坛与我们交流。
- [案例展示](USE-CASES.md)
- [使用手册](https://maxkb.cn/docs/)
- [论坛求助](https://bbs.fit2cloud.com/c/mk/11)
- 技术交流群
<image height="150px" width="150px" src="https://github.com/1Panel-dev/MaxKB/assets/52996290/a083d214-02be-4178-a1db-4f428124153a"/>
## UI 展示
<table style="border-collapse: collapse; border: 1px solid black;">
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/1Panel-dev/MaxKB/assets/52996290/d87395fa-a8d7-401c-82bf-c6e475d10ae9" alt="MaxKB Demo1" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/1Panel-dev/MaxKB/assets/52996290/47c35ee4-3a3b-4bd4-9f4f-ee20788b2b9a" alt="MaxKB Demo2" /></td>
</tr>
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/user-attachments/assets/9a1043cb-fa62-4f71-b9a3-0b46fa59a70e" alt="MaxKB Demo3" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/user-attachments/assets/3407ce9a-779c-4eb4-858e-9441a2ddc664" alt="MaxKB Demo4" /></td>
</tr>
</table>
## 技术栈
- 前端:[Vue.js](https://cn.vuejs.org/)
- 后端:[Python / Django](https://www.djangoproject.com/)
- LangChain[LangChain](https://www.langchain.com/)
- 向量数据库:[PostgreSQL / pgvector](https://www.postgresql.org/)
## 飞致云的其他明星项目
- [1Panel](https://github.com/1panel-dev/1panel/) - 现代化、开源的 Linux 服务器运维管理面板
- [JumpServer](https://github.com/jumpserver/jumpserver/) - 广受欢迎的开源堡垒机
- [DataEase](https://github.com/dataease/dataease/) - 人人可用的开源数据可视化分析工具
- [MeterSphere](https://github.com/metersphere/metersphere/) - 新一代的开源持续测试工具
- [Halo](https://github.com/halo-dev/halo/) - 强大易用的开源建站工具
## License
Copyright (c) 2014-2025 飞致云 FIT2CLOUD, All rights reserved.
Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
<https://www.gnu.org/licenses/gpl-3.0.html>
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.

17
SECURITY.md Normal file
View File

@ -0,0 +1,17 @@
# 安全说明
如果您发现安全问题,请直接联系我们:
- support@fit2cloud.com
- 400-052-0755
感谢您的支持!
# Security Policy
All security bugs should be reported to the contact as below:
- support@fit2cloud.com
- 400-052-0755
Thanks for your support!

39
USE-CASES.md Normal file
View File

@ -0,0 +1,39 @@
<h3 align="center">MaxKB 应用案例,持续更新中...</h3>
------------------------------
- [MaxKB 应用案例:中国农业大学-小鹉哥](https://mp.weixin.qq.com/s/4g_gySMBQZCJ9OZ-yBkmvw)
- [MaxKB 应用案例:东北财经大学-小银杏](https://mp.weixin.qq.com/s/3BoxkY7EMomMmmvFYxvDIA)
- [MaxKB 应用案例:中铁水务](https://mp.weixin.qq.com/s/voNAddbK2CJOrJJs1ewZ8g)
- [MaxKB 应用案例:解放军总医院](https://mp.weixin.qq.com/s/ETrZC-vrA4Aap0eF-15EeQ)
- [MaxKB 应用案例:无锡市数据局](https://mp.weixin.qq.com/s/enfUFLevvL_La74PQ0kIXw)
- [MaxKB 应用案例:中核西仪研究院-西仪睿答](https://mp.weixin.qq.com/s/CbKr4mev8qahKLAtV6Dxdg)
- [MaxKB 应用案例:南京中医药大学](https://mp.weixin.qq.com/s/WUmAKYbZjp3272HIecpRFA)
- [MaxKB 应用案例:西北电力设计院-AI数字助理Memex](https://mp.weixin.qq.com/s/ezHFdB7C7AVL9MTtDwYGSA)
- [MaxKB 应用案例:西安国际医院中心医院-国医小助](https://mp.weixin.qq.com/s/DSOUvwrQrxbqQxKBilTCFQ)
- [MaxKB 应用案例华莱士智能AI客服助手上线啦](https://www.bilibili.com/video/BV1hQtVeXEBL)
- [MaxKB 应用案例:把医疗行业知识转化为知识库问答助手!](https://www.bilibili.com/video/BV157wme9EgB)
- [MaxKB 应用案例会展AI智能客服体验](https://www.bilibili.com/video/BV1J7BqY6EKA)
- [MaxKB 应用案例孩子要上幼儿园了AI 智能助手择校好帮手](https://www.bilibili.com/video/BV1wKrhYvEer)
- [MaxKB 应用案例产品使用指南AI助手新手小白也能轻松搞定](https://www.bilibili.com/video/BV1Yz6gYtEqX)
- [MaxKB 应用案例生物医药AI客服智能体验!](https://www.bilibili.com/video/BV13JzvYsE3e)
- [MaxKB 应用案例高校行政管理AI小助手](https://www.bilibili.com/video/BV1yvBMYvEdy)
- [MaxKB 应用案例:岳阳市人民医院-OA小助手](https://mp.weixin.qq.com/s/O94Qo3UH-MiUtDdWCVg8sQ)
- [MaxKB 应用案例:常熟市第一人民医院](https://mp.weixin.qq.com/s/s5XXGTR3_MUo41NbJ8WzZQ)
- [MaxKB 应用案例:华北水利水电大学](https://mp.weixin.qq.com/s/PoOFAcMCr9qJdvSj8c08qg)
- [MaxKB 应用案例:唐山海事局-“小海”AI语音助手](https://news.qq.com/rain/a/20250223A030BE00)
- [MaxKB 应用案例:湖南汉寿政务](http://hsds.hsdj.gov.cn:19999/ui/chat/a2c976736739aadc)
- [MaxKB 应用案例:广州市妇女儿童医疗中心-AI医疗数据分类分级小助手](https://mp.weixin.qq.com/s/YHUMkUOAaUomBV8bswpK3g)
- [MaxKB 应用案例:苏州热工研究院有限公司-维修大纲评估质量自查AI小助手](https://mp.weixin.qq.com/s/Ts5FQdnv7Tu9Jp7bvofCVA)
- [MaxKB 应用案例:国核自仪系统工程有限公司-NuCON AI帮](https://mp.weixin.qq.com/s/HNPc7u5xVfGLJr8IQz3vjQ)
- [MaxKB 应用案例深圳通开启Deep Seek智能应用新篇章](https://mp.weixin.qq.com/s/SILN0GSescH9LyeQqYP0VQ)
- [MaxKB 应用案例南通智慧出行领跑长三角首款接入DeepSeek的"畅行南通"APP上线AI新场景](https://mp.weixin.qq.com/s/WEC9UQ6msY0VS8LhTZh-Ew)
- [MaxKB 应用案例:中船动力人工智能"智慧动力云助手"及首批数字员工正式上线](https://mp.weixin.qq.com/s/OGcEkjh9DzGO1Tkc9nr7qg)
- [MaxKB 应用案例AI+矿山DeepSeek助力绿色智慧矿山智慧“升级”](https://mp.weixin.qq.com/s/SZstxTvVoLZg0ECbZbfpIA)
- [MaxKB 应用案例DeepSeek落地弘盛铜业国产大模型点亮"黑灯工厂"新引擎](https://mp.weixin.qq.com/s/Eczdx574MS5RMF7WfHN7_A)
- [MaxKB 应用案例:拥抱智能时代!中国五矿以 “AI+”赋能企业发展](https://mp.weixin.qq.com/s/D5vBtlX2E81pWE3_2OgWSw)
- [MaxKB 应用案例DeepSeek赋能中冶武勘AI智能体](https://mp.weixin.qq.com/s/8m0vxGcWXNdZazziQrLyxg)
- [MaxKB 应用案例重磅陕西广电网络“秦岭云”平台实现DeepSeek本地化部署](https://mp.weixin.qq.com/s/ZKmEU_wWShK1YDomKJHQeA)
- [MaxKB 应用案例粤海集团完成DeepSeek私有化部署助力集团智能化管理](https://mp.weixin.qq.com/s/2JbVp0-kr9Hfp-0whH4cvg)
- [MaxKB 应用案例建筑材料工业信息中心完成DeepSeek本地化部署推动行业数智化转型新发展](https://mp.weixin.qq.com/s/HThGSnND3qDF8ySEqiM4jw)
- [MaxKB 应用案例一起DeepSeek福建设计以AI大模型开启新篇章](https://mp.weixin.qq.com/s/m67e-H7iQBg3d24NM82UjA)

View File

@ -18,7 +18,8 @@ from dataset.models import Paragraph
class ParagraphPipelineModel:
def __init__(self, _id: str, document_id: str, dataset_id: str, content: str, title: str, status: str,
is_active: bool, comprehensive_score: float, similarity: float, dataset_name: str, document_name: str):
is_active: bool, comprehensive_score: float, similarity: float, dataset_name: str, document_name: str,
hit_handling_method: str, directly_return_similarity: float, meta: dict = None):
self.id = _id
self.document_id = document_id
self.dataset_id = dataset_id
@ -30,6 +31,9 @@ class ParagraphPipelineModel:
self.similarity = similarity
self.dataset_name = dataset_name
self.document_name = document_name
self.hit_handling_method = hit_handling_method
self.directly_return_similarity = directly_return_similarity
self.meta = meta
def to_dict(self):
return {
@ -43,7 +47,8 @@ class ParagraphPipelineModel:
'comprehensive_score': self.comprehensive_score,
'similarity': self.similarity,
'dataset_name': self.dataset_name,
'document_name': self.document_name
'document_name': self.document_name,
'meta': self.meta,
}
class builder:
@ -53,6 +58,9 @@ class ParagraphPipelineModel:
self.comprehensive_score = None
self.document_name = None
self.dataset_name = None
self.hit_handling_method = None
self.directly_return_similarity = 0.9
self.meta = {}
def add_paragraph(self, paragraph):
if isinstance(paragraph, Paragraph):
@ -76,6 +84,14 @@ class ParagraphPipelineModel:
self.document_name = document_name
return self
def add_hit_handling_method(self, hit_handling_method):
self.hit_handling_method = hit_handling_method
return self
def add_directly_return_similarity(self, directly_return_similarity):
self.directly_return_similarity = directly_return_similarity
return self
def add_comprehensive_score(self, comprehensive_score: float):
self.comprehensive_score = comprehensive_score
return self
@ -84,6 +100,10 @@ class ParagraphPipelineModel:
self.similarity = similarity
return self
def add_meta(self, meta: dict):
self.meta = meta
return self
def build(self):
return ParagraphPipelineModel(str(self.paragraph.get('id')), str(self.paragraph.get('document_id')),
str(self.paragraph.get('dataset_id')),
@ -91,7 +111,8 @@ class ParagraphPipelineModel:
self.paragraph.get('status'),
self.paragraph.get('is_active'),
self.comprehensive_score, self.similarity, self.dataset_name,
self.document_name)
self.document_name, self.hit_handling_method, self.directly_return_similarity,
self.meta)
class IBaseChatPipelineStep:

View File

@ -11,14 +11,18 @@ from functools import reduce
from typing import List, Type, Dict
from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep
from common.handle.base_to_response import BaseToResponse
from common.handle.impl.response.system_to_response import SystemToResponse
class PiplineManage:
def __init__(self, step_list: List[Type[IBaseChatPipelineStep]]):
class PipelineManage:
def __init__(self, step_list: List[Type[IBaseChatPipelineStep]],
base_to_response: BaseToResponse = SystemToResponse()):
# 步骤执行器
self.step_list = [step() for step in step_list]
# 上下文
self.context = {'message_tokens': 0, 'answer_tokens': 0}
self.base_to_response = base_to_response
def run(self, context: Dict = None):
self.context['start_time'] = time.time()
@ -33,13 +37,21 @@ class PiplineManage:
filter(lambda r: r is not None,
[row.get_details(self) for row in self.step_list])], {})
def get_base_to_response(self):
return self.base_to_response
class builder:
def __init__(self):
self.step_list: List[Type[IBaseChatPipelineStep]] = []
self.base_to_response = SystemToResponse()
def append_step(self, step: Type[IBaseChatPipelineStep]):
self.step_list.append(step)
return self
def add_base_to_response(self, base_to_response: BaseToResponse):
self.base_to_response = base_to_response
return self
def build(self):
return PiplineManage(step_list=self.step_list)
return PipelineManage(step_list=self.step_list, base_to_response=self.base_to_response)

View File

@ -9,21 +9,22 @@
from abc import abstractmethod
from typing import Type, List
from django.utils.translation import gettext_lazy as _
from langchain.chat_models.base import BaseChatModel
from langchain.schema import BaseMessage
from rest_framework import serializers
from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep, ParagraphPipelineModel
from application.chat_pipeline.pipeline_manage import PiplineManage
from application.chat_pipeline.pipeline_manage import PipelineManage
from application.serializers.application_serializers import NoReferencesSetting
from common.field.common import InstanceField
from common.util.field_message import ErrMessage
from dataset.models import Paragraph
class ModelField(serializers.Field):
def to_internal_value(self, data):
if not isinstance(data, BaseChatModel):
self.fail('模型类型错误', value=data)
self.fail(_('Model type error'), value=data)
return data
def to_representation(self, value):
@ -33,7 +34,7 @@ class ModelField(serializers.Field):
class MessageField(serializers.Field):
def to_internal_value(self, data):
if not isinstance(data, BaseMessage):
self.fail('message类型错误', value=data)
self.fail(_('Message type error'), value=data)
return data
def to_representation(self, value):
@ -52,36 +53,47 @@ class IChatStep(IBaseChatPipelineStep):
class InstanceSerializer(serializers.Serializer):
# 对话列表
message_list = serializers.ListField(required=True, child=MessageField(required=True),
error_messages=ErrMessage.list("对话列表"))
# 大语言模型
chat_model = ModelField(error_messages=ErrMessage.list("大语言模型"))
error_messages=ErrMessage.list(_("Conversation list")))
model_id = serializers.UUIDField(required=False, allow_null=True, error_messages=ErrMessage.uuid(_("Model id")))
# 段落列表
paragraph_list = serializers.ListField(error_messages=ErrMessage.list("段落列表"))
paragraph_list = serializers.ListField(error_messages=ErrMessage.list(_("Paragraph List")))
# 对话id
chat_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid("对话id"))
chat_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_("Conversation ID")))
# 用户问题
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.uuid("用户问题"))
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.uuid(_("User Questions")))
# 后置处理器
post_response_handler = InstanceField(model_type=PostResponseHandler,
error_messages=ErrMessage.base("用户问题"))
error_messages=ErrMessage.base(_("Post-processor")))
# 补全问题
padding_problem_text = serializers.CharField(required=False, error_messages=ErrMessage.base("补全问题"))
padding_problem_text = serializers.CharField(required=False,
error_messages=ErrMessage.base(_("Completion Question")))
# 是否使用流的形式输出
stream = serializers.BooleanField(required=False, error_messages=ErrMessage.base("流式输出"))
client_id = serializers.CharField(required=True, error_messages=ErrMessage.char("客户端id"))
client_type = serializers.CharField(required=True, error_messages=ErrMessage.char("客户端类型"))
stream = serializers.BooleanField(required=False, error_messages=ErrMessage.base(_("Streaming Output")))
client_id = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Client id")))
client_type = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Client Type")))
# 未查询到引用分段
no_references_setting = NoReferencesSetting(required=True,
error_messages=ErrMessage.base(_("No reference segment settings")))
user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_("User ID")))
model_setting = serializers.DictField(required=True, allow_null=True,
error_messages=ErrMessage.dict(_("Model settings")))
model_params_setting = serializers.DictField(required=False, allow_null=True,
error_messages=ErrMessage.dict(_("Model parameter settings")))
def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True)
message_list: List = self.initial_data.get('message_list')
for message in message_list:
if not isinstance(message, BaseMessage):
raise Exception("message 类型错误")
raise Exception(_("message type error"))
def get_step_serializer(self, manage: PiplineManage) -> Type[serializers.Serializer]:
def get_step_serializer(self, manage: PipelineManage) -> Type[serializers.Serializer]:
return self.InstanceSerializer
def _run(self, manage: PiplineManage):
def _run(self, manage: PipelineManage):
chat_result = self.execute(**self.context['step_args'], manage=manage)
manage.context['chat_result'] = chat_result
@ -89,8 +101,10 @@ class IChatStep(IBaseChatPipelineStep):
def execute(self, message_list: List[BaseMessage],
chat_id, problem_text,
post_response_handler: PostResponseHandler,
chat_model: BaseChatModel = None,
model_id: str = None,
user_id: str = None,
paragraph_list=None,
manage: PiplineManage = None,
padding_problem_text: str = None, stream: bool = True, client_id=None, client_type=None, **kwargs):
manage: PipelineManage = None,
padding_problem_text: str = None, stream: bool = True, client_id=None, client_type=None,
no_references_setting=None, model_params_setting=None, model_setting=None, **kwargs):
pass

View File

@ -6,7 +6,6 @@
@date2024/1/9 18:25
@desc: 对话step Base实现
"""
import json
import logging
import time
import traceback
@ -15,27 +14,44 @@ from typing import List
from django.db.models import QuerySet
from django.http import StreamingHttpResponse
from django.utils.translation import gettext as _
from langchain.chat_models.base import BaseChatModel
from langchain.schema import BaseMessage
from langchain.schema.messages import BaseMessageChunk, HumanMessage, AIMessage
from langchain.schema.messages import HumanMessage, AIMessage
from langchain_core.messages import AIMessageChunk
from rest_framework import status
from application.chat_pipeline.I_base_chat_pipeline import ParagraphPipelineModel
from application.chat_pipeline.pipeline_manage import PiplineManage
from application.chat_pipeline.pipeline_manage import PipelineManage
from application.chat_pipeline.step.chat_step.i_chat_step import IChatStep, PostResponseHandler
from application.flow.tools import Reasoning
from application.models.api_key_model import ApplicationPublicAccessClient
from common.constants.authentication_type import AuthenticationType
from common.response import result
from setting.models_provider.tools import get_model_instance_by_model_user_id
def add_access_num(client_id=None, client_type=None):
if client_type == AuthenticationType.APPLICATION_ACCESS_TOKEN.value:
application_public_access_client = QuerySet(ApplicationPublicAccessClient).filter(id=client_id).first()
def add_access_num(client_id=None, client_type=None, application_id=None):
if client_type == AuthenticationType.APPLICATION_ACCESS_TOKEN.value and application_id is not None:
application_public_access_client = (QuerySet(ApplicationPublicAccessClient).filter(client_id=client_id,
application_id=application_id)
.first())
if application_public_access_client is not None:
application_public_access_client.access_num = application_public_access_client.access_num + 1
application_public_access_client.intraday_access_num = application_public_access_client.intraday_access_num + 1
application_public_access_client.save()
def write_context(step, manage, request_token, response_token, all_text):
step.context['message_tokens'] = request_token
step.context['answer_tokens'] = response_token
current_time = time.time()
step.context['answer_text'] = all_text
step.context['run_time'] = current_time - step.context['start_time']
manage.context['run_time'] = current_time - manage.context['start_time']
manage.context['message_tokens'] = manage.context['message_tokens'] + request_token
manage.context['answer_tokens'] = manage.context['answer_tokens'] + response_token
def event_content(response,
chat_id,
chat_record_id,
@ -47,34 +63,95 @@ def event_content(response,
message_list: List[BaseMessage],
problem_text: str,
padding_problem_text: str = None,
client_id=None, client_type=None):
client_id=None, client_type=None,
is_ai_chat: bool = None,
model_setting=None):
if model_setting is None:
model_setting = {}
reasoning_content_enable = model_setting.get('reasoning_content_enable', False)
reasoning_content_start = model_setting.get('reasoning_content_start', '<think>')
reasoning_content_end = model_setting.get('reasoning_content_end', '</think>')
reasoning = Reasoning(reasoning_content_start,
reasoning_content_end)
all_text = ''
reasoning_content = ''
try:
response_reasoning_content = False
for chunk in response:
all_text += chunk.content
yield 'data: ' + json.dumps({'chat_id': str(chat_id), 'id': str(chat_record_id), 'operate': True,
'content': chunk.content, 'is_end': False}) + "\n\n"
reasoning_chunk = reasoning.get_reasoning_content(chunk)
content_chunk = reasoning_chunk.get('content')
if 'reasoning_content' in chunk.additional_kwargs:
response_reasoning_content = True
reasoning_content_chunk = chunk.additional_kwargs.get('reasoning_content', '')
else:
reasoning_content_chunk = reasoning_chunk.get('reasoning_content')
all_text += content_chunk
if reasoning_content_chunk is None:
reasoning_content_chunk = ''
reasoning_content += reasoning_content_chunk
yield manage.get_base_to_response().to_stream_chunk_response(chat_id, str(chat_record_id), 'ai-chat-node',
[], content_chunk,
False,
0, 0, {'node_is_end': False,
'view_type': 'many_view',
'node_type': 'ai-chat-node',
'real_node_id': 'ai-chat-node',
'reasoning_content': reasoning_content_chunk if reasoning_content_enable else ''})
reasoning_chunk = reasoning.get_end_reasoning_content()
all_text += reasoning_chunk.get('content')
reasoning_content_chunk = ""
if not response_reasoning_content:
reasoning_content_chunk = reasoning_chunk.get(
'reasoning_content')
yield manage.get_base_to_response().to_stream_chunk_response(chat_id, str(chat_record_id), 'ai-chat-node',
[], reasoning_chunk.get('content'),
False,
0, 0, {'node_is_end': False,
'view_type': 'many_view',
'node_type': 'ai-chat-node',
'real_node_id': 'ai-chat-node',
'reasoning_content'
: reasoning_content_chunk if reasoning_content_enable else ''})
# 获取token
if is_ai_chat:
try:
request_token = chat_model.get_num_tokens_from_messages(message_list)
response_token = chat_model.get_num_tokens(all_text)
step.context['message_tokens'] = request_token
step.context['answer_tokens'] = response_token
current_time = time.time()
step.context['answer_text'] = all_text
step.context['run_time'] = current_time - step.context['start_time']
manage.context['run_time'] = current_time - manage.context['start_time']
manage.context['message_tokens'] = manage.context['message_tokens'] + request_token
manage.context['answer_tokens'] = manage.context['answer_tokens'] + response_token
except Exception as e:
request_token = 0
response_token = 0
else:
request_token = 0
response_token = 0
write_context(step, manage, request_token, response_token, all_text)
asker = manage.context.get('form_data', {}).get('asker', None)
post_response_handler.handler(chat_id, chat_record_id, paragraph_list, problem_text,
all_text, manage, step, padding_problem_text, client_id)
yield 'data: ' + json.dumps({'chat_id': str(chat_id), 'id': str(chat_record_id), 'operate': True,
'content': '', 'is_end': True}) + "\n\n"
add_access_num(client_id, client_type)
all_text, manage, step, padding_problem_text, client_id,
reasoning_content=reasoning_content if reasoning_content_enable else ''
, asker=asker)
yield manage.get_base_to_response().to_stream_chunk_response(chat_id, str(chat_record_id), 'ai-chat-node',
[], '', True,
request_token, response_token,
{'node_is_end': True, 'view_type': 'many_view',
'node_type': 'ai-chat-node'})
add_access_num(client_id, client_type, manage.context.get('application_id'))
except Exception as e:
logging.getLogger("max_kb_error").error(f'{str(e)}:{traceback.format_exc()}')
yield 'data: ' + json.dumps({'chat_id': str(chat_id), 'id': str(chat_record_id), 'operate': True,
'content': '异常' + str(e), 'is_end': True}) + "\n\n"
all_text = 'Exception:' + str(e)
write_context(step, manage, 0, 0, all_text)
asker = manage.context.get('form_data', {}).get('asker', None)
post_response_handler.handler(chat_id, chat_record_id, paragraph_list, problem_text,
all_text, manage, step, padding_problem_text, client_id, reasoning_content='',
asker=asker)
add_access_num(client_id, client_type, manage.context.get('application_id'))
yield manage.get_base_to_response().to_stream_chunk_response(chat_id, str(chat_record_id), 'ai-chat-node',
[], all_text,
False,
0, 0, {'node_is_end': False,
'view_type': 'many_view',
'node_type': 'ai-chat-node',
'real_node_id': 'ai-chat-node',
'reasoning_content': ''})
class BaseChatStep(IChatStep):
@ -82,21 +159,29 @@ class BaseChatStep(IChatStep):
chat_id,
problem_text,
post_response_handler: PostResponseHandler,
chat_model: BaseChatModel = None,
model_id: str = None,
user_id: str = None,
paragraph_list=None,
manage: PiplineManage = None,
manage: PipelineManage = None,
padding_problem_text: str = None,
stream: bool = True,
client_id=None, client_type=None,
no_references_setting=None,
model_params_setting=None,
model_setting=None,
**kwargs):
chat_model = get_model_instance_by_model_user_id(model_id, user_id,
**model_params_setting) if model_id is not None else None
if stream:
return self.execute_stream(message_list, chat_id, problem_text, post_response_handler, chat_model,
paragraph_list,
manage, padding_problem_text, client_id, client_type)
manage, padding_problem_text, client_id, client_type, no_references_setting,
model_setting)
else:
return self.execute_block(message_list, chat_id, problem_text, post_response_handler, chat_model,
paragraph_list,
manage, padding_problem_text, client_id, client_type)
manage, padding_problem_text, client_id, client_type, no_references_setting,
model_setting)
def get_details(self, manage, **kwargs):
return {
@ -119,60 +204,131 @@ class BaseChatStep(IChatStep):
result.append({'role': 'ai', 'content': answer_text})
return result
@staticmethod
def get_stream_result(message_list: List[BaseMessage],
chat_model: BaseChatModel = None,
paragraph_list=None,
no_references_setting=None,
problem_text=None):
if paragraph_list is None:
paragraph_list = []
directly_return_chunk_list = [AIMessageChunk(content=paragraph.content)
for paragraph in paragraph_list if (
paragraph.hit_handling_method == 'directly_return' and paragraph.similarity >= paragraph.directly_return_similarity)]
if directly_return_chunk_list is not None and len(directly_return_chunk_list) > 0:
return iter(directly_return_chunk_list), False
elif len(paragraph_list) == 0 and no_references_setting.get(
'status') == 'designated_answer':
return iter(
[AIMessageChunk(content=no_references_setting.get('value').replace('{question}', problem_text))]), False
if chat_model is None:
return iter([AIMessageChunk(
_('Sorry, the AI model is not configured. Please go to the application to set up the AI model first.'))]), False
else:
return chat_model.stream(message_list), True
def execute_stream(self, message_list: List[BaseMessage],
chat_id,
problem_text,
post_response_handler: PostResponseHandler,
chat_model: BaseChatModel = None,
paragraph_list=None,
manage: PiplineManage = None,
manage: PipelineManage = None,
padding_problem_text: str = None,
client_id=None, client_type=None):
# 调用模型
if chat_model is None:
chat_result = iter(
[BaseMessageChunk(content=paragraph.title + "\n" + paragraph.content) for paragraph in paragraph_list])
else:
chat_result = chat_model.stream(message_list)
client_id=None, client_type=None,
no_references_setting=None,
model_setting=None):
chat_result, is_ai_chat = self.get_stream_result(message_list, chat_model, paragraph_list,
no_references_setting, problem_text)
chat_record_id = uuid.uuid1()
r = StreamingHttpResponse(
streaming_content=event_content(chat_result, chat_id, chat_record_id, paragraph_list,
post_response_handler, manage, self, chat_model, message_list, problem_text,
padding_problem_text, client_id, client_type),
padding_problem_text, client_id, client_type, is_ai_chat, model_setting),
content_type='text/event-stream;charset=utf-8')
r['Cache-Control'] = 'no-cache'
return r
@staticmethod
def get_block_result(message_list: List[BaseMessage],
chat_model: BaseChatModel = None,
paragraph_list=None,
no_references_setting=None,
problem_text=None):
if paragraph_list is None:
paragraph_list = []
directly_return_chunk_list = [AIMessageChunk(content=paragraph.content)
for paragraph in paragraph_list if (
paragraph.hit_handling_method == 'directly_return' and paragraph.similarity >= paragraph.directly_return_similarity)]
if directly_return_chunk_list is not None and len(directly_return_chunk_list) > 0:
return directly_return_chunk_list[0], False
elif len(paragraph_list) == 0 and no_references_setting.get(
'status') == 'designated_answer':
return AIMessage(no_references_setting.get('value').replace('{question}', problem_text)), False
if chat_model is None:
return AIMessage(
_('Sorry, the AI model is not configured. Please go to the application to set up the AI model first.')), False
else:
return chat_model.invoke(message_list), True
def execute_block(self, message_list: List[BaseMessage],
chat_id,
problem_text,
post_response_handler: PostResponseHandler,
chat_model: BaseChatModel = None,
paragraph_list=None,
manage: PiplineManage = None,
manage: PipelineManage = None,
padding_problem_text: str = None,
client_id=None, client_type=None):
# 调用模型
if chat_model is None:
chat_result = AIMessage(
content="\n\n".join([paragraph.title + "\n" + paragraph.content for paragraph in paragraph_list]))
else:
chat_result = chat_model.invoke(message_list)
client_id=None, client_type=None, no_references_setting=None,
model_setting=None):
reasoning_content_enable = model_setting.get('reasoning_content_enable', False)
reasoning_content_start = model_setting.get('reasoning_content_start', '<think>')
reasoning_content_end = model_setting.get('reasoning_content_end', '</think>')
reasoning = Reasoning(reasoning_content_start,
reasoning_content_end)
chat_record_id = uuid.uuid1()
# 调用模型
try:
chat_result, is_ai_chat = self.get_block_result(message_list, chat_model, paragraph_list,
no_references_setting, problem_text)
if is_ai_chat:
request_token = chat_model.get_num_tokens_from_messages(message_list)
response_token = chat_model.get_num_tokens(chat_result.content)
self.context['message_tokens'] = request_token
self.context['answer_tokens'] = response_token
current_time = time.time()
self.context['answer_text'] = chat_result.content
self.context['run_time'] = current_time - self.context['start_time']
manage.context['run_time'] = current_time - manage.context['start_time']
manage.context['message_tokens'] = manage.context['message_tokens'] + request_token
manage.context['answer_tokens'] = manage.context['answer_tokens'] + response_token
else:
request_token = 0
response_token = 0
write_context(self, manage, request_token, response_token, chat_result.content)
reasoning_result = reasoning.get_reasoning_content(chat_result)
reasoning_result_end = reasoning.get_end_reasoning_content()
content = reasoning_result.get('content') + reasoning_result_end.get('content')
if 'reasoning_content' in chat_result.response_metadata:
reasoning_content = chat_result.response_metadata.get('reasoning_content', '')
else:
reasoning_content = reasoning_result.get('reasoning_content') + reasoning_result_end.get(
'reasoning_content')
asker = manage.context.get('form_data', {}).get('asker', None)
post_response_handler.handler(chat_id, chat_record_id, paragraph_list, problem_text,
chat_result.content, manage, self, padding_problem_text, client_id)
add_access_num(client_id, client_type)
return result.success({'chat_id': str(chat_id), 'id': str(chat_record_id), 'operate': True,
'content': chat_result.content, 'is_end': True})
content, manage, self, padding_problem_text, client_id,
reasoning_content=reasoning_content if reasoning_content_enable else '',
asker=asker)
add_access_num(client_id, client_type, manage.context.get('application_id'))
return manage.get_base_to_response().to_block_response(str(chat_id), str(chat_record_id),
content, True,
request_token, response_token,
{
'reasoning_content': reasoning_content if reasoning_content_enable else '',
'answer_list': [{
'content': content,
'reasoning_content': reasoning_content if reasoning_content_enable else ''
}]})
except Exception as e:
all_text = 'Exception:' + str(e)
write_context(self, manage, 0, 0, all_text)
asker = manage.context.get('form_data', {}).get('asker', None)
post_response_handler.handler(chat_id, chat_record_id, paragraph_list, problem_text,
all_text, manage, self, padding_problem_text, client_id, reasoning_content='',
asker=asker)
add_access_num(client_id, client_type, manage.context.get('application_id'))
return manage.get_base_to_response().to_block_response(str(chat_id), str(chat_record_id), all_text, True, 0,
0, _status=status.HTTP_500_INTERNAL_SERVER_ERROR)

View File

@ -9,41 +9,46 @@
from abc import abstractmethod
from typing import Type, List
from django.utils.translation import gettext_lazy as _
from langchain.schema import BaseMessage
from rest_framework import serializers
from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep, ParagraphPipelineModel
from application.chat_pipeline.pipeline_manage import PiplineManage
from application.chat_pipeline.pipeline_manage import PipelineManage
from application.models import ChatRecord
from application.serializers.application_serializers import NoReferencesSetting
from common.field.common import InstanceField
from common.util.field_message import ErrMessage
from dataset.models import Paragraph
class IGenerateHumanMessageStep(IBaseChatPipelineStep):
class InstanceSerializer(serializers.Serializer):
# 问题
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.char("问题"))
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.char(_("question")))
# 段落列表
paragraph_list = serializers.ListField(child=InstanceField(model_type=ParagraphPipelineModel, required=True),
error_messages=ErrMessage.list("段落列表"))
error_messages=ErrMessage.list(_("Paragraph List")))
# 历史对答
history_chat_record = serializers.ListField(child=InstanceField(model_type=ChatRecord, required=True),
error_messages=ErrMessage.list("历史对答"))
error_messages=ErrMessage.list(_("History Questions")))
# 多轮对话数量
dialogue_number = serializers.IntegerField(required=True, error_messages=ErrMessage.integer("多轮对话数量"))
dialogue_number = serializers.IntegerField(required=True, error_messages=ErrMessage.integer(_("Number of multi-round conversations")))
# 最大携带知识库段落长度
max_paragraph_char_number = serializers.IntegerField(required=True, error_messages=ErrMessage.integer(
"最大携带知识库段落长度"))
_("Maximum length of the knowledge base paragraph")))
# 模板
prompt = serializers.CharField(required=True, error_messages=ErrMessage.char("提示词"))
prompt = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Prompt word")))
system = serializers.CharField(required=False, allow_null=True, allow_blank=True,
error_messages=ErrMessage.char(_("System prompt words (role)")))
# 补齐问题
padding_problem_text = serializers.CharField(required=False, error_messages=ErrMessage.char("补齐问题"))
padding_problem_text = serializers.CharField(required=False, error_messages=ErrMessage.char(_("Completion problem")))
# 未查询到引用分段
no_references_setting = NoReferencesSetting(required=True, error_messages=ErrMessage.base(_("No reference segment settings")))
def get_step_serializer(self, manage: PiplineManage) -> Type[serializers.Serializer]:
def get_step_serializer(self, manage: PipelineManage) -> Type[serializers.Serializer]:
return self.InstanceSerializer
def _run(self, manage: PiplineManage):
def _run(self, manage: PipelineManage):
message_list = self.execute(**self.context['step_args'])
manage.context['message_list'] = message_list
@ -56,6 +61,8 @@ class IGenerateHumanMessageStep(IBaseChatPipelineStep):
max_paragraph_char_number: int,
prompt: str,
padding_problem_text: str = None,
no_references_setting=None,
system=None,
**kwargs) -> List[BaseMessage]:
"""
@ -67,6 +74,8 @@ class IGenerateHumanMessageStep(IBaseChatPipelineStep):
:param prompt: 模板
:param padding_problem_text 用户修改文本
:param kwargs: 其他参数
:param no_references_setting: 无引用分段设置
:param system 系统提示称
:return:
"""
pass

View File

@ -6,9 +6,10 @@
@date2024/1/10 17:50
@desc:
"""
from typing import List
from typing import List, Dict
from langchain.schema import BaseMessage, HumanMessage
from langchain_core.messages import SystemMessage
from application.chat_pipeline.I_base_chat_pipeline import ParagraphPipelineModel
from application.chat_pipeline.step.generate_human_message_step.i_generate_human_message_step import \
@ -26,22 +27,37 @@ class BaseGenerateHumanMessageStep(IGenerateHumanMessageStep):
max_paragraph_char_number: int,
prompt: str,
padding_problem_text: str = None,
no_references_setting=None,
system=None,
**kwargs) -> List[BaseMessage]:
prompt = prompt if (paragraph_list is not None and len(paragraph_list) > 0) else no_references_setting.get(
'value')
exec_problem_text = padding_problem_text if padding_problem_text is not None else problem_text
start_index = len(history_chat_record) - dialogue_number
history_message = [[history_chat_record[index].get_human_message(), history_chat_record[index].get_ai_message()]
for index in
range(start_index if start_index > 0 else 0, len(history_chat_record))]
if system is not None and len(system) > 0:
return [SystemMessage(system), *flat_map(history_message),
self.to_human_message(prompt, exec_problem_text, max_paragraph_char_number, paragraph_list,
no_references_setting)]
return [*flat_map(history_message),
self.to_human_message(prompt, exec_problem_text, max_paragraph_char_number, paragraph_list)]
self.to_human_message(prompt, exec_problem_text, max_paragraph_char_number, paragraph_list,
no_references_setting)]
@staticmethod
def to_human_message(prompt: str,
problem: str,
max_paragraph_char_number: int,
paragraph_list: List[ParagraphPipelineModel]):
paragraph_list: List[ParagraphPipelineModel],
no_references_setting: Dict):
if paragraph_list is None or len(paragraph_list) == 0:
return HumanMessage(content=prompt.format(**{'data': "<data></data>", 'question': problem}))
if no_references_setting.get('status') == 'ai_questioning':
return HumanMessage(
content=no_references_setting.get('value').replace('{question}', problem))
else:
return HumanMessage(content=prompt.replace('{data}', "").replace('{question}', problem))
temp_data = ""
data_list = []
for p in paragraph_list:
@ -54,4 +70,4 @@ class BaseGenerateHumanMessageStep(IGenerateHumanMessageStep):
else:
data_list.append(f"<data>{content}</data>")
data = "\n".join(data_list)
return HumanMessage(content=prompt.format(**{'data': data, 'question': problem}))
return HumanMessage(content=prompt.replace('{data}', data).replace('{question}', problem))

View File

@ -9,12 +9,11 @@
from abc import abstractmethod
from typing import Type, List
from langchain.chat_models.base import BaseChatModel
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep
from application.chat_pipeline.pipeline_manage import PiplineManage
from application.chat_pipeline.step.chat_step.i_chat_step import ModelField
from application.chat_pipeline.pipeline_manage import PipelineManage
from application.models import ChatRecord
from common.field.common import InstanceField
from common.util.field_message import ErrMessage
@ -23,17 +22,21 @@ from common.util.field_message import ErrMessage
class IResetProblemStep(IBaseChatPipelineStep):
class InstanceSerializer(serializers.Serializer):
# 问题文本
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.float("问题文本"))
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.float(_("question")))
# 历史对答
history_chat_record = serializers.ListField(child=InstanceField(model_type=ChatRecord, required=True),
error_messages=ErrMessage.list("历史对答"))
error_messages=ErrMessage.list(_("History Questions")))
# 大语言模型
chat_model = ModelField(error_messages=ErrMessage.base("大语言模型"))
model_id = serializers.UUIDField(required=False, allow_null=True, error_messages=ErrMessage.uuid(_("Model id")))
user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_("User ID")))
problem_optimization_prompt = serializers.CharField(required=False, max_length=102400,
error_messages=ErrMessage.char(
_("Question completion prompt")))
def get_step_serializer(self, manage: PiplineManage) -> Type[serializers.Serializer]:
def get_step_serializer(self, manage: PipelineManage) -> Type[serializers.Serializer]:
return self.InstanceSerializer
def _run(self, manage: PiplineManage):
def _run(self, manage: PipelineManage):
padding_problem = self.execute(**self.context.get('step_args'))
# 用户输入问题
source_problem_text = self.context.get('step_args').get('problem_text')
@ -42,10 +45,13 @@ class IResetProblemStep(IBaseChatPipelineStep):
manage.context['problem_text'] = source_problem_text
manage.context['padding_problem_text'] = padding_problem
# 累加tokens
manage.context['message_tokens'] = manage.context['message_tokens'] + self.context.get('message_tokens')
manage.context['answer_tokens'] = manage.context['answer_tokens'] + self.context.get('answer_tokens')
manage.context['message_tokens'] = manage.context.get('message_tokens', 0) + self.context.get('message_tokens',
0)
manage.context['answer_tokens'] = manage.context.get('answer_tokens', 0) + self.context.get('answer_tokens', 0)
@abstractmethod
def execute(self, problem_text: str, history_chat_record: List[ChatRecord] = None, chat_model: BaseChatModel = None,
def execute(self, problem_text: str, history_chat_record: List[ChatRecord] = None, model_id: str = None,
problem_optimization_prompt=None,
user_id=None,
**kwargs):
pass

View File

@ -8,26 +8,33 @@
"""
from typing import List
from langchain.chat_models.base import BaseChatModel
from django.utils.translation import gettext as _
from langchain.schema import HumanMessage
from application.chat_pipeline.step.reset_problem_step.i_reset_problem_step import IResetProblemStep
from application.models import ChatRecord
from common.util.split_model import flat_map
from setting.models_provider.tools import get_model_instance_by_model_user_id
prompt = (
'()里面是用户问题,根据上下文回答揣测用户问题({question}) 要求: 输出一个补全问题,并且放在<data></data>标签中')
prompt = _(
"() contains the user's question. Answer the guessed user's question based on the context ({question}) Requirement: Output a complete question and put it in the <data></data> tag")
class BaseResetProblemStep(IResetProblemStep):
def execute(self, problem_text: str, history_chat_record: List[ChatRecord] = None, chat_model: BaseChatModel = None,
def execute(self, problem_text: str, history_chat_record: List[ChatRecord] = None, model_id: str = None,
problem_optimization_prompt=None,
user_id=None,
**kwargs) -> str:
chat_model = get_model_instance_by_model_user_id(model_id, user_id) if model_id is not None else None
if chat_model is None:
return problem_text
start_index = len(history_chat_record) - 3
history_message = [[history_chat_record[index].get_human_message(), history_chat_record[index].get_ai_message()]
for index in
range(start_index if start_index > 0 else 0, len(history_chat_record))]
reset_prompt = problem_optimization_prompt if problem_optimization_prompt else prompt
message_list = [*flat_map(history_message),
HumanMessage(content=prompt.format(**{'question': problem_text}))]
HumanMessage(content=reset_prompt.replace('{question}', problem_text))]
response = chat_model.invoke(message_list)
padding_problem = problem_text
if response.content.__contains__("<data>") and response.content.__contains__('</data>'):
@ -35,8 +42,17 @@ class BaseResetProblemStep(IResetProblemStep):
response.content.index('<data>') + 6:response.content.index('</data>')]
if padding_problem_data is not None and len(padding_problem_data.strip()) > 0:
padding_problem = padding_problem_data
self.context['message_tokens'] = chat_model.get_num_tokens_from_messages(message_list)
self.context['answer_tokens'] = chat_model.get_num_tokens(padding_problem)
elif len(response.content) > 0:
padding_problem = response.content
try:
request_token = chat_model.get_num_tokens_from_messages(message_list)
response_token = chat_model.get_num_tokens(padding_problem)
except Exception as e:
request_token = 0
response_token = 0
self.context['message_tokens'] = request_token
self.context['answer_tokens'] = response_token
return padding_problem
def get_details(self, manage, **kwargs):
@ -44,8 +60,8 @@ class BaseResetProblemStep(IResetProblemStep):
'step_type': 'problem_padding',
'run_time': self.context['run_time'],
'model_id': str(manage.context['model_id']) if 'model_id' in manage.context else None,
'message_tokens': self.context['message_tokens'],
'answer_tokens': self.context['answer_tokens'],
'message_tokens': self.context.get('message_tokens', 0),
'answer_tokens': self.context.get('answer_tokens', 0),
'cost': 0,
'padding_problem_text': self.context.get('padding_problem_text'),
'problem_text': self.context.get("step_args").get('problem_text'),

View File

@ -6,43 +6,51 @@
@date2024/1/9 18:10
@desc: 检索知识库
"""
import re
from abc import abstractmethod
from typing import List, Type
from django.core import validators
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep, ParagraphPipelineModel
from application.chat_pipeline.pipeline_manage import PiplineManage
from application.chat_pipeline.pipeline_manage import PipelineManage
from common.util.field_message import ErrMessage
from dataset.models import Paragraph
class ISearchDatasetStep(IBaseChatPipelineStep):
class InstanceSerializer(serializers.Serializer):
# 原始问题文本
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.char("问题"))
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.char(_("question")))
# 系统补全问题文本
padding_problem_text = serializers.CharField(required=False, error_messages=ErrMessage.char("系统补全问题文本"))
padding_problem_text = serializers.CharField(required=False,
error_messages=ErrMessage.char(_("System completes question text")))
# 需要查询的数据集id列表
dataset_id_list = serializers.ListField(required=True, child=serializers.UUIDField(required=True),
error_messages=ErrMessage.list("数据集id列表"))
error_messages=ErrMessage.list(_("Dataset id list")))
# 需要排除的文档id
exclude_document_id_list = serializers.ListField(required=True, child=serializers.UUIDField(required=True),
error_messages=ErrMessage.list("排除的文档id列表"))
error_messages=ErrMessage.list(_("List of document ids to exclude")))
# 需要排除向量id
exclude_paragraph_id_list = serializers.ListField(required=True, child=serializers.UUIDField(required=True),
error_messages=ErrMessage.list("排除向量id列表"))
error_messages=ErrMessage.list(_("List of exclusion vector ids")))
# 需要查询的条数
top_n = serializers.IntegerField(required=True,
error_messages=ErrMessage.integer("引用分段数"))
error_messages=ErrMessage.integer(_("Reference segment number")))
# 相似度 0-1之间
similarity = serializers.FloatField(required=True, max_value=1, min_value=0,
error_messages=ErrMessage.float("引用分段数"))
error_messages=ErrMessage.float(_("Similarity")))
search_mode = serializers.CharField(required=True, validators=[
validators.RegexValidator(regex=re.compile("^embedding|keywords|blend$"),
message=_("The type only supports embedding|keywords|blend"), code=500)
], error_messages=ErrMessage.char(_("Retrieval Mode")))
user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_("User ID")))
def get_step_serializer(self, manage: PiplineManage) -> Type[InstanceSerializer]:
def get_step_serializer(self, manage: PipelineManage) -> Type[InstanceSerializer]:
return self.InstanceSerializer
def _run(self, manage: PiplineManage):
def _run(self, manage: PipelineManage):
paragraph_list = self.execute(**self.context['step_args'])
manage.context['paragraph_list'] = paragraph_list
self.context['paragraph_list'] = paragraph_list
@ -50,6 +58,8 @@ class ISearchDatasetStep(IBaseChatPipelineStep):
@abstractmethod
def execute(self, problem_text: str, dataset_id_list: list[str], exclude_document_id_list: list[str],
exclude_paragraph_id_list: list[str], top_n: int, similarity: float, padding_problem_text: str = None,
search_mode: str = None,
user_id=None,
**kwargs) -> List[ParagraphPipelineModel]:
"""
关于 用户和补全问题 说明: 补全问题如果有就使用补全问题去查询 反之就用用户原始问题查询
@ -60,6 +70,8 @@ class ISearchDatasetStep(IBaseChatPipelineStep):
:param exclude_document_id_list: 需要排除的文档id
:param exclude_paragraph_id_list: 需要排除段落id
:param padding_problem_text 补全问题
:param search_mode 检索模式
:param user_id 用户id
:return: 段落列表
"""
pass

View File

@ -10,31 +10,63 @@ import os
from typing import List, Dict
from django.db.models import QuerySet
from django.utils.translation import gettext_lazy as _
from rest_framework.utils.formatting import lazy_format
from application.chat_pipeline.I_base_chat_pipeline import ParagraphPipelineModel
from application.chat_pipeline.step.search_dataset_step.i_search_dataset_step import ISearchDatasetStep
from common.config.embedding_config import VectorStore, EmbeddingModel
from common.config.embedding_config import VectorStore, ModelManage
from common.db.search import native_search
from common.util.file_util import get_file_content
from dataset.models import Paragraph
from dataset.models import Paragraph, DataSet
from embedding.models import SearchMode
from setting.models import Model
from setting.models_provider import get_model
from smartdoc.conf import PROJECT_DIR
def get_model_by_id(_id, user_id):
model = QuerySet(Model).filter(id=_id).first()
if model is None:
raise Exception(_("Model does not exist"))
if model.permission_type == 'PRIVATE' and str(model.user_id) != str(user_id):
message = lazy_format(_('No permission to use this model {model_name}'), model_name=model.name)
raise Exception(message)
return model
def get_embedding_id(dataset_id_list):
dataset_list = QuerySet(DataSet).filter(id__in=dataset_id_list)
if len(set([dataset.embedding_mode_id for dataset in dataset_list])) > 1:
raise Exception(_("The vector model of the associated knowledge base is inconsistent and the segmentation cannot be recalled."))
if len(dataset_list) == 0:
raise Exception(_("The knowledge base setting is wrong, please reset the knowledge base"))
return dataset_list[0].embedding_mode_id
class BaseSearchDatasetStep(ISearchDatasetStep):
def execute(self, problem_text: str, dataset_id_list: list[str], exclude_document_id_list: list[str],
exclude_paragraph_id_list: list[str], top_n: int, similarity: float, padding_problem_text: str = None,
search_mode: str = None,
user_id=None,
**kwargs) -> List[ParagraphPipelineModel]:
if len(dataset_id_list) == 0:
return []
exec_problem_text = padding_problem_text if padding_problem_text is not None else problem_text
embedding_model = EmbeddingModel.get_embedding_model()
model_id = get_embedding_id(dataset_id_list)
model = get_model_by_id(model_id, user_id)
self.context['model_name'] = model.name
embedding_model = ModelManage.get_model(model_id, lambda _id: get_model(model))
embedding_value = embedding_model.embed_query(exec_problem_text)
vector = VectorStore.get_embedding_vector()
embedding_list = vector.query(embedding_value, dataset_id_list, exclude_document_id_list,
exclude_paragraph_id_list, True, top_n, similarity)
embedding_list = vector.query(exec_problem_text, embedding_value, dataset_id_list, exclude_document_id_list,
exclude_paragraph_id_list, True, top_n, similarity, SearchMode(search_mode))
if embedding_list is None:
return []
paragraph_list = self.list_paragraph([row.get('paragraph_id') for row in embedding_list], vector)
return [self.reset_paragraph(paragraph, embedding_list) for paragraph in paragraph_list]
paragraph_list = self.list_paragraph(embedding_list, vector)
result = [self.reset_paragraph(paragraph, embedding_list) for paragraph in paragraph_list]
return result
@staticmethod
def reset_paragraph(paragraph: Dict, embedding_list: List) -> ParagraphPipelineModel:
@ -48,10 +80,23 @@ class BaseSearchDatasetStep(ISearchDatasetStep):
.add_comprehensive_score(find_embedding.get('comprehensive_score'))
.add_dataset_name(paragraph.get('dataset_name'))
.add_document_name(paragraph.get('document_name'))
.add_hit_handling_method(paragraph.get('hit_handling_method'))
.add_directly_return_similarity(paragraph.get('directly_return_similarity'))
.add_meta(paragraph.get('meta'))
.build())
@staticmethod
def list_paragraph(paragraph_id_list: List, vector):
def get_similarity(paragraph, embedding_list: List):
filter_embedding_list = [embedding for embedding in embedding_list if
str(embedding.get('paragraph_id')) == str(paragraph.get('id'))]
if filter_embedding_list is not None and len(filter_embedding_list) > 0:
find_embedding = filter_embedding_list[-1]
return find_embedding.get('comprehensive_score')
return 0
@staticmethod
def list_paragraph(embedding_list: List, vector):
paragraph_id_list = [row.get('paragraph_id') for row in embedding_list]
if paragraph_id_list is None or len(paragraph_id_list) == 0:
return []
paragraph_list = native_search(QuerySet(Paragraph).filter(id__in=paragraph_id_list),
@ -65,6 +110,16 @@ class BaseSearchDatasetStep(ISearchDatasetStep):
for paragraph_id in paragraph_id_list:
if not exist_paragraph_list.__contains__(paragraph_id):
vector.delete_by_paragraph_id(paragraph_id)
# 如果存在直接返回的则取直接返回段落
hit_handling_method_paragraph = [paragraph for paragraph in paragraph_list if
(paragraph.get(
'hit_handling_method') == 'directly_return' and BaseSearchDatasetStep.get_similarity(
paragraph, embedding_list) >= paragraph.get(
'directly_return_similarity'))]
if len(hit_handling_method_paragraph) > 0:
# 找到评分最高的
return [sorted(hit_handling_method_paragraph,
key=lambda p: BaseSearchDatasetStep.get_similarity(p, embedding_list))[-1]]
return paragraph_list
def get_details(self, manage, **kwargs):
@ -76,7 +131,7 @@ class BaseSearchDatasetStep(ISearchDatasetStep):
'run_time': self.context['run_time'],
'problem_text': step_args.get(
'padding_problem_text') if 'padding_problem_text' in step_args else step_args.get('problem_text'),
'model_name': EmbeddingModel.get_embedding_model().model_name,
'model_name': self.context.get('model_name'),
'message_tokens': 0,
'answer_tokens': 0,
'cost': 0

View File

@ -0,0 +1,8 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py.py
@date2024/6/7 14:43
@desc:
"""

View File

@ -0,0 +1,44 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file common.py
@date2024/12/11 17:57
@desc:
"""
class Answer:
def __init__(self, content, view_type, runtime_node_id, chat_record_id, child_node, real_node_id,
reasoning_content):
self.view_type = view_type
self.content = content
self.reasoning_content = reasoning_content
self.runtime_node_id = runtime_node_id
self.chat_record_id = chat_record_id
self.child_node = child_node
self.real_node_id = real_node_id
def to_dict(self):
return {'view_type': self.view_type, 'content': self.content, 'runtime_node_id': self.runtime_node_id,
'chat_record_id': self.chat_record_id,
'child_node': self.child_node,
'reasoning_content': self.reasoning_content,
'real_node_id': self.real_node_id}
class NodeChunk:
def __init__(self):
self.status = 0
self.chunk_list = []
def add_chunk(self, chunk):
self.chunk_list.append(chunk)
def end(self, chunk=None):
if chunk is not None:
self.add_chunk(chunk)
self.status = 200
def is_end(self):
return self.status == 200

View File

@ -0,0 +1,451 @@
{
"nodes": [
{
"id": "base-node",
"type": "base-node",
"x": 360,
"y": 2810,
"properties": {
"config": {
},
"height": 825.6,
"stepName": "基本信息",
"node_data": {
"desc": "",
"name": "maxkbapplication",
"prologue": "您好,我是 MaxKB 小助手,您可以向我提出 MaxKB 使用问题。\n- MaxKB 主要功能有什么?\n- MaxKB 支持哪些大语言模型?\n- MaxKB 支持哪些文档类型?"
},
"input_field_list": [
]
}
},
{
"id": "start-node",
"type": "start-node",
"x": 430,
"y": 3660,
"properties": {
"config": {
"fields": [
{
"label": "用户问题",
"value": "question"
}
],
"globalFields": [
{
"label": "当前时间",
"value": "time"
}
]
},
"fields": [
{
"label": "用户问题",
"value": "question"
}
],
"height": 276,
"stepName": "开始",
"globalFields": [
{
"label": "当前时间",
"value": "time"
}
]
}
},
{
"id": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"type": "search-dataset-node",
"x": 840,
"y": 3210,
"properties": {
"config": {
"fields": [
{
"label": "检索结果的分段列表",
"value": "paragraph_list"
},
{
"label": "满足直接回答的分段列表",
"value": "is_hit_handling_method_list"
},
{
"label": "检索结果",
"value": "data"
},
{
"label": "满足直接回答的分段内容",
"value": "directly_return"
}
]
},
"height": 794,
"stepName": "知识库检索",
"node_data": {
"dataset_id_list": [
],
"dataset_setting": {
"top_n": 3,
"similarity": 0.6,
"search_mode": "embedding",
"max_paragraph_char_number": 5000
},
"question_reference_address": [
"start-node",
"question"
],
"source_dataset_id_list": [
]
}
}
},
{
"id": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"type": "condition-node",
"x": 1490,
"y": 3210,
"properties": {
"width": 600,
"config": {
"fields": [
{
"label": "分支名称",
"value": "branch_name"
}
]
},
"height": 543.675,
"stepName": "判断器",
"node_data": {
"branch": [
{
"id": "1009",
"type": "IF",
"condition": "and",
"conditions": [
{
"field": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"is_hit_handling_method_list"
],
"value": "1",
"compare": "len_ge"
}
]
},
{
"id": "4908",
"type": "ELSE IF 1",
"condition": "and",
"conditions": [
{
"field": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"paragraph_list"
],
"value": "1",
"compare": "len_ge"
}
]
},
{
"id": "161",
"type": "ELSE",
"condition": "and",
"conditions": [
]
}
]
},
"branch_condition_list": [
{
"index": 0,
"height": 121.225,
"id": "1009"
},
{
"index": 1,
"height": 121.225,
"id": "4908"
},
{
"index": 2,
"height": 44,
"id": "161"
}
]
}
},
{
"id": "4ffe1086-25df-4c85-b168-979b5bbf0a26",
"type": "reply-node",
"x": 2170,
"y": 2480,
"properties": {
"config": {
"fields": [
{
"label": "内容",
"value": "answer"
}
]
},
"height": 378,
"stepName": "指定回复",
"node_data": {
"fields": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"directly_return"
],
"content": "",
"reply_type": "referencing",
"is_result": true
}
}
},
{
"id": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb",
"type": "ai-chat-node",
"x": 2160,
"y": 3200,
"properties": {
"config": {
"fields": [
{
"label": "AI 回答内容",
"value": "answer"
}
]
},
"height": 763,
"stepName": "AI 对话",
"node_data": {
"prompt": "已知信息:\n{{知识库检索.data}}\n问题\n{{开始.question}}",
"system": "",
"model_id": "",
"dialogue_number": 0,
"is_result": true
}
}
},
{
"id": "309d0eef-c597-46b5-8d51-b9a28aaef4c7",
"type": "ai-chat-node",
"x": 2160,
"y": 3970,
"properties": {
"config": {
"fields": [
{
"label": "AI 回答内容",
"value": "answer"
}
]
},
"height": 763,
"stepName": "AI 对话1",
"node_data": {
"prompt": "{{开始.question}}",
"system": "",
"model_id": "",
"dialogue_number": 0,
"is_result": true
}
}
}
],
"edges": [
{
"id": "7d0f166f-c472-41b2-b9a2-c294f4c83d73",
"type": "app-edge",
"sourceNodeId": "start-node",
"targetNodeId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"startPoint": {
"x": 590,
"y": 3660
},
"endPoint": {
"x": 680,
"y": 3210
},
"properties": {
},
"pointsList": [
{
"x": 590,
"y": 3660
},
{
"x": 700,
"y": 3660
},
{
"x": 570,
"y": 3210
},
{
"x": 680,
"y": 3210
}
],
"sourceAnchorId": "start-node_right",
"targetAnchorId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5_left"
},
{
"id": "35cb86dd-f328-429e-a973-12fd7218b696",
"type": "app-edge",
"sourceNodeId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"targetNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"startPoint": {
"x": 1000,
"y": 3210
},
"endPoint": {
"x": 1200,
"y": 3210
},
"properties": {
},
"pointsList": [
{
"x": 1000,
"y": 3210
},
{
"x": 1110,
"y": 3210
},
{
"x": 1090,
"y": 3210
},
{
"x": 1200,
"y": 3210
}
],
"sourceAnchorId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5_right",
"targetAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_left"
},
{
"id": "e8f6cfe6-7e48-41cd-abd3-abfb5304d0d8",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "4ffe1086-25df-4c85-b168-979b5bbf0a26",
"startPoint": {
"x": 1780,
"y": 3073.775
},
"endPoint": {
"x": 2010,
"y": 2480
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3073.775
},
{
"x": 1890,
"y": 3073.775
},
{
"x": 1900,
"y": 2480
},
{
"x": 2010,
"y": 2480
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_1009_right",
"targetAnchorId": "4ffe1086-25df-4c85-b168-979b5bbf0a26_left"
},
{
"id": "994ff325-6f7a-4ebc-b61b-10e15519d6d2",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb",
"startPoint": {
"x": 1780,
"y": 3203
},
"endPoint": {
"x": 2000,
"y": 3200
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3203
},
{
"x": 1890,
"y": 3203
},
{
"x": 1890,
"y": 3200
},
{
"x": 2000,
"y": 3200
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_4908_right",
"targetAnchorId": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb_left"
},
{
"id": "19270caf-bb9f-4ba7-9bf8-200aa70fecd5",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "309d0eef-c597-46b5-8d51-b9a28aaef4c7",
"startPoint": {
"x": 1780,
"y": 3293.6124999999997
},
"endPoint": {
"x": 2000,
"y": 3970
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3293.6124999999997
},
{
"x": 1890,
"y": 3293.6124999999997
},
{
"x": 1890,
"y": 3970
},
{
"x": 2000,
"y": 3970
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_161_right",
"targetAnchorId": "309d0eef-c597-46b5-8d51-b9a28aaef4c7_left"
}
]
}

View File

@ -0,0 +1,451 @@
{
"nodes": [
{
"id": "base-node",
"type": "base-node",
"x": 360,
"y": 2810,
"properties": {
"config": {
},
"height": 825.6,
"stepName": "Base",
"node_data": {
"desc": "",
"name": "maxkbapplication",
"prologue": "Hello, I am the MaxKB assistant. You can ask me about MaxKB usage issues.\n-What are the main functions of MaxKB?\n-What major language models does MaxKB support?\n-What document types does MaxKB support?"
},
"input_field_list": [
]
}
},
{
"id": "start-node",
"type": "start-node",
"x": 430,
"y": 3660,
"properties": {
"config": {
"fields": [
{
"label": "用户问题",
"value": "question"
}
],
"globalFields": [
{
"label": "当前时间",
"value": "time"
}
]
},
"fields": [
{
"label": "用户问题",
"value": "question"
}
],
"height": 276,
"stepName": "Start",
"globalFields": [
{
"label": "当前时间",
"value": "time"
}
]
}
},
{
"id": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"type": "search-dataset-node",
"x": 840,
"y": 3210,
"properties": {
"config": {
"fields": [
{
"label": "检索结果的分段列表",
"value": "paragraph_list"
},
{
"label": "满足直接回答的分段列表",
"value": "is_hit_handling_method_list"
},
{
"label": "检索结果",
"value": "data"
},
{
"label": "满足直接回答的分段内容",
"value": "directly_return"
}
]
},
"height": 794,
"stepName": "Knowledge Search",
"node_data": {
"dataset_id_list": [
],
"dataset_setting": {
"top_n": 3,
"similarity": 0.6,
"search_mode": "embedding",
"max_paragraph_char_number": 5000
},
"question_reference_address": [
"start-node",
"question"
],
"source_dataset_id_list": [
]
}
}
},
{
"id": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"type": "condition-node",
"x": 1490,
"y": 3210,
"properties": {
"width": 600,
"config": {
"fields": [
{
"label": "分支名称",
"value": "branch_name"
}
]
},
"height": 543.675,
"stepName": "Conditional Branch",
"node_data": {
"branch": [
{
"id": "1009",
"type": "IF",
"condition": "and",
"conditions": [
{
"field": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"is_hit_handling_method_list"
],
"value": "1",
"compare": "len_ge"
}
]
},
{
"id": "4908",
"type": "ELSE IF 1",
"condition": "and",
"conditions": [
{
"field": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"paragraph_list"
],
"value": "1",
"compare": "len_ge"
}
]
},
{
"id": "161",
"type": "ELSE",
"condition": "and",
"conditions": [
]
}
]
},
"branch_condition_list": [
{
"index": 0,
"height": 121.225,
"id": "1009"
},
{
"index": 1,
"height": 121.225,
"id": "4908"
},
{
"index": 2,
"height": 44,
"id": "161"
}
]
}
},
{
"id": "4ffe1086-25df-4c85-b168-979b5bbf0a26",
"type": "reply-node",
"x": 2170,
"y": 2480,
"properties": {
"config": {
"fields": [
{
"label": "内容",
"value": "answer"
}
]
},
"height": 378,
"stepName": "Specified Reply",
"node_data": {
"fields": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"directly_return"
],
"content": "",
"reply_type": "referencing",
"is_result": true
}
}
},
{
"id": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb",
"type": "ai-chat-node",
"x": 2160,
"y": 3200,
"properties": {
"config": {
"fields": [
{
"label": "AI 回答内容",
"value": "answer"
}
]
},
"height": 763,
"stepName": "AI Chat",
"node_data": {
"prompt": "Known information:\n{{Knowledge Search.data}}\nQuestion:\n{{Start.question}}",
"system": "",
"model_id": "",
"dialogue_number": 0,
"is_result": true
}
}
},
{
"id": "309d0eef-c597-46b5-8d51-b9a28aaef4c7",
"type": "ai-chat-node",
"x": 2160,
"y": 3970,
"properties": {
"config": {
"fields": [
{
"label": "AI 回答内容",
"value": "answer"
}
]
},
"height": 763,
"stepName": "AI Chat1",
"node_data": {
"prompt": "{{Start.question}}",
"system": "",
"model_id": "",
"dialogue_number": 0,
"is_result": true
}
}
}
],
"edges": [
{
"id": "7d0f166f-c472-41b2-b9a2-c294f4c83d73",
"type": "app-edge",
"sourceNodeId": "start-node",
"targetNodeId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"startPoint": {
"x": 590,
"y": 3660
},
"endPoint": {
"x": 680,
"y": 3210
},
"properties": {
},
"pointsList": [
{
"x": 590,
"y": 3660
},
{
"x": 700,
"y": 3660
},
{
"x": 570,
"y": 3210
},
{
"x": 680,
"y": 3210
}
],
"sourceAnchorId": "start-node_right",
"targetAnchorId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5_left"
},
{
"id": "35cb86dd-f328-429e-a973-12fd7218b696",
"type": "app-edge",
"sourceNodeId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"targetNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"startPoint": {
"x": 1000,
"y": 3210
},
"endPoint": {
"x": 1200,
"y": 3210
},
"properties": {
},
"pointsList": [
{
"x": 1000,
"y": 3210
},
{
"x": 1110,
"y": 3210
},
{
"x": 1090,
"y": 3210
},
{
"x": 1200,
"y": 3210
}
],
"sourceAnchorId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5_right",
"targetAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_left"
},
{
"id": "e8f6cfe6-7e48-41cd-abd3-abfb5304d0d8",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "4ffe1086-25df-4c85-b168-979b5bbf0a26",
"startPoint": {
"x": 1780,
"y": 3073.775
},
"endPoint": {
"x": 2010,
"y": 2480
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3073.775
},
{
"x": 1890,
"y": 3073.775
},
{
"x": 1900,
"y": 2480
},
{
"x": 2010,
"y": 2480
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_1009_right",
"targetAnchorId": "4ffe1086-25df-4c85-b168-979b5bbf0a26_left"
},
{
"id": "994ff325-6f7a-4ebc-b61b-10e15519d6d2",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb",
"startPoint": {
"x": 1780,
"y": 3203
},
"endPoint": {
"x": 2000,
"y": 3200
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3203
},
{
"x": 1890,
"y": 3203
},
{
"x": 1890,
"y": 3200
},
{
"x": 2000,
"y": 3200
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_4908_right",
"targetAnchorId": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb_left"
},
{
"id": "19270caf-bb9f-4ba7-9bf8-200aa70fecd5",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "309d0eef-c597-46b5-8d51-b9a28aaef4c7",
"startPoint": {
"x": 1780,
"y": 3293.6124999999997
},
"endPoint": {
"x": 2000,
"y": 3970
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3293.6124999999997
},
{
"x": 1890,
"y": 3293.6124999999997
},
{
"x": 1890,
"y": 3970
},
{
"x": 2000,
"y": 3970
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_161_right",
"targetAnchorId": "309d0eef-c597-46b5-8d51-b9a28aaef4c7_left"
}
]
}

View File

@ -0,0 +1,451 @@
{
"nodes": [
{
"id": "base-node",
"type": "base-node",
"x": 360,
"y": 2810,
"properties": {
"config": {
},
"height": 825.6,
"stepName": "基本信息",
"node_data": {
"desc": "",
"name": "maxkbapplication",
"prologue": "您好,我是 MaxKB 小助手,您可以向我提出 MaxKB 使用问题。\n- MaxKB 主要功能有什么?\n- MaxKB 支持哪些大语言模型?\n- MaxKB 支持哪些文档类型?"
},
"input_field_list": [
]
}
},
{
"id": "start-node",
"type": "start-node",
"x": 430,
"y": 3660,
"properties": {
"config": {
"fields": [
{
"label": "用户问题",
"value": "question"
}
],
"globalFields": [
{
"label": "当前时间",
"value": "time"
}
]
},
"fields": [
{
"label": "用户问题",
"value": "question"
}
],
"height": 276,
"stepName": "开始",
"globalFields": [
{
"label": "当前时间",
"value": "time"
}
]
}
},
{
"id": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"type": "search-dataset-node",
"x": 840,
"y": 3210,
"properties": {
"config": {
"fields": [
{
"label": "检索结果的分段列表",
"value": "paragraph_list"
},
{
"label": "满足直接回答的分段列表",
"value": "is_hit_handling_method_list"
},
{
"label": "检索结果",
"value": "data"
},
{
"label": "满足直接回答的分段内容",
"value": "directly_return"
}
]
},
"height": 794,
"stepName": "知识库检索",
"node_data": {
"dataset_id_list": [
],
"dataset_setting": {
"top_n": 3,
"similarity": 0.6,
"search_mode": "embedding",
"max_paragraph_char_number": 5000
},
"question_reference_address": [
"start-node",
"question"
],
"source_dataset_id_list": [
]
}
}
},
{
"id": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"type": "condition-node",
"x": 1490,
"y": 3210,
"properties": {
"width": 600,
"config": {
"fields": [
{
"label": "分支名称",
"value": "branch_name"
}
]
},
"height": 543.675,
"stepName": "判断器",
"node_data": {
"branch": [
{
"id": "1009",
"type": "IF",
"condition": "and",
"conditions": [
{
"field": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"is_hit_handling_method_list"
],
"value": "1",
"compare": "len_ge"
}
]
},
{
"id": "4908",
"type": "ELSE IF 1",
"condition": "and",
"conditions": [
{
"field": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"paragraph_list"
],
"value": "1",
"compare": "len_ge"
}
]
},
{
"id": "161",
"type": "ELSE",
"condition": "and",
"conditions": [
]
}
]
},
"branch_condition_list": [
{
"index": 0,
"height": 121.225,
"id": "1009"
},
{
"index": 1,
"height": 121.225,
"id": "4908"
},
{
"index": 2,
"height": 44,
"id": "161"
}
]
}
},
{
"id": "4ffe1086-25df-4c85-b168-979b5bbf0a26",
"type": "reply-node",
"x": 2170,
"y": 2480,
"properties": {
"config": {
"fields": [
{
"label": "内容",
"value": "answer"
}
]
},
"height": 378,
"stepName": "指定回复",
"node_data": {
"fields": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"directly_return"
],
"content": "",
"reply_type": "referencing",
"is_result": true
}
}
},
{
"id": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb",
"type": "ai-chat-node",
"x": 2160,
"y": 3200,
"properties": {
"config": {
"fields": [
{
"label": "AI 回答内容",
"value": "answer"
}
]
},
"height": 763,
"stepName": "AI 对话",
"node_data": {
"prompt": "已知信息:\n{{知识库检索.data}}\n问题\n{{开始.question}}",
"system": "",
"model_id": "",
"dialogue_number": 0,
"is_result": true
}
}
},
{
"id": "309d0eef-c597-46b5-8d51-b9a28aaef4c7",
"type": "ai-chat-node",
"x": 2160,
"y": 3970,
"properties": {
"config": {
"fields": [
{
"label": "AI 回答内容",
"value": "answer"
}
]
},
"height": 763,
"stepName": "AI 对话1",
"node_data": {
"prompt": "{{开始.question}}",
"system": "",
"model_id": "",
"dialogue_number": 0,
"is_result": true
}
}
}
],
"edges": [
{
"id": "7d0f166f-c472-41b2-b9a2-c294f4c83d73",
"type": "app-edge",
"sourceNodeId": "start-node",
"targetNodeId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"startPoint": {
"x": 590,
"y": 3660
},
"endPoint": {
"x": 680,
"y": 3210
},
"properties": {
},
"pointsList": [
{
"x": 590,
"y": 3660
},
{
"x": 700,
"y": 3660
},
{
"x": 570,
"y": 3210
},
{
"x": 680,
"y": 3210
}
],
"sourceAnchorId": "start-node_right",
"targetAnchorId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5_left"
},
{
"id": "35cb86dd-f328-429e-a973-12fd7218b696",
"type": "app-edge",
"sourceNodeId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"targetNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"startPoint": {
"x": 1000,
"y": 3210
},
"endPoint": {
"x": 1200,
"y": 3210
},
"properties": {
},
"pointsList": [
{
"x": 1000,
"y": 3210
},
{
"x": 1110,
"y": 3210
},
{
"x": 1090,
"y": 3210
},
{
"x": 1200,
"y": 3210
}
],
"sourceAnchorId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5_right",
"targetAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_left"
},
{
"id": "e8f6cfe6-7e48-41cd-abd3-abfb5304d0d8",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "4ffe1086-25df-4c85-b168-979b5bbf0a26",
"startPoint": {
"x": 1780,
"y": 3073.775
},
"endPoint": {
"x": 2010,
"y": 2480
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3073.775
},
{
"x": 1890,
"y": 3073.775
},
{
"x": 1900,
"y": 2480
},
{
"x": 2010,
"y": 2480
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_1009_right",
"targetAnchorId": "4ffe1086-25df-4c85-b168-979b5bbf0a26_left"
},
{
"id": "994ff325-6f7a-4ebc-b61b-10e15519d6d2",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb",
"startPoint": {
"x": 1780,
"y": 3203
},
"endPoint": {
"x": 2000,
"y": 3200
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3203
},
{
"x": 1890,
"y": 3203
},
{
"x": 1890,
"y": 3200
},
{
"x": 2000,
"y": 3200
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_4908_right",
"targetAnchorId": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb_left"
},
{
"id": "19270caf-bb9f-4ba7-9bf8-200aa70fecd5",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "309d0eef-c597-46b5-8d51-b9a28aaef4c7",
"startPoint": {
"x": 1780,
"y": 3293.6124999999997
},
"endPoint": {
"x": 2000,
"y": 3970
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3293.6124999999997
},
{
"x": 1890,
"y": 3293.6124999999997
},
{
"x": 1890,
"y": 3970
},
{
"x": 2000,
"y": 3970
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_161_right",
"targetAnchorId": "309d0eef-c597-46b5-8d51-b9a28aaef4c7_left"
}
]
}

View File

@ -0,0 +1,451 @@
{
"nodes": [
{
"id": "base-node",
"type": "base-node",
"x": 360,
"y": 2810,
"properties": {
"config": {
},
"height": 825.6,
"stepName": "基本資訊",
"node_data": {
"desc": "",
"name": "maxkbapplication",
"prologue": "您好我是MaxKB小助手您可以向我提出MaxKB使用問題。\n- MaxKB主要功能有什麼\n- MaxKB支持哪些大語言模型\n- MaxKB支持哪些文檔類型"
},
"input_field_list": [
]
}
},
{
"id": "start-node",
"type": "start-node",
"x": 430,
"y": 3660,
"properties": {
"config": {
"fields": [
{
"label": "用户问题",
"value": "question"
}
],
"globalFields": [
{
"label": "当前时间",
"value": "time"
}
]
},
"fields": [
{
"label": "用户问题",
"value": "question"
}
],
"height": 276,
"stepName": "開始",
"globalFields": [
{
"label": "当前时间",
"value": "time"
}
]
}
},
{
"id": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"type": "search-dataset-node",
"x": 840,
"y": 3210,
"properties": {
"config": {
"fields": [
{
"label": "检索结果的分段列表",
"value": "paragraph_list"
},
{
"label": "满足直接回答的分段列表",
"value": "is_hit_handling_method_list"
},
{
"label": "检索结果",
"value": "data"
},
{
"label": "满足直接回答的分段内容",
"value": "directly_return"
}
]
},
"height": 794,
"stepName": "知識庫檢索",
"node_data": {
"dataset_id_list": [
],
"dataset_setting": {
"top_n": 3,
"similarity": 0.6,
"search_mode": "embedding",
"max_paragraph_char_number": 5000
},
"question_reference_address": [
"start-node",
"question"
],
"source_dataset_id_list": [
]
}
}
},
{
"id": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"type": "condition-node",
"x": 1490,
"y": 3210,
"properties": {
"width": 600,
"config": {
"fields": [
{
"label": "分支名称",
"value": "branch_name"
}
]
},
"height": 543.675,
"stepName": "判斷器",
"node_data": {
"branch": [
{
"id": "1009",
"type": "IF",
"condition": "and",
"conditions": [
{
"field": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"is_hit_handling_method_list"
],
"value": "1",
"compare": "len_ge"
}
]
},
{
"id": "4908",
"type": "ELSE IF 1",
"condition": "and",
"conditions": [
{
"field": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"paragraph_list"
],
"value": "1",
"compare": "len_ge"
}
]
},
{
"id": "161",
"type": "ELSE",
"condition": "and",
"conditions": [
]
}
]
},
"branch_condition_list": [
{
"index": 0,
"height": 121.225,
"id": "1009"
},
{
"index": 1,
"height": 121.225,
"id": "4908"
},
{
"index": 2,
"height": 44,
"id": "161"
}
]
}
},
{
"id": "4ffe1086-25df-4c85-b168-979b5bbf0a26",
"type": "reply-node",
"x": 2170,
"y": 2480,
"properties": {
"config": {
"fields": [
{
"label": "内容",
"value": "answer"
}
]
},
"height": 378,
"stepName": "指定回覆",
"node_data": {
"fields": [
"b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"directly_return"
],
"content": "",
"reply_type": "referencing",
"is_result": true
}
}
},
{
"id": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb",
"type": "ai-chat-node",
"x": 2160,
"y": 3200,
"properties": {
"config": {
"fields": [
{
"label": "AI 回答内容",
"value": "answer"
}
]
},
"height": 763,
"stepName": "AI 對話",
"node_data": {
"prompt": "已知資訊:\n{{知識庫檢索.data}}\n問題\n{{開始.question}}",
"system": "",
"model_id": "",
"dialogue_number": 0,
"is_result": true
}
}
},
{
"id": "309d0eef-c597-46b5-8d51-b9a28aaef4c7",
"type": "ai-chat-node",
"x": 2160,
"y": 3970,
"properties": {
"config": {
"fields": [
{
"label": "AI 回答内容",
"value": "answer"
}
]
},
"height": 763,
"stepName": "AI 對話1",
"node_data": {
"prompt": "{{開始.question}}",
"system": "",
"model_id": "",
"dialogue_number": 0,
"is_result": true
}
}
}
],
"edges": [
{
"id": "7d0f166f-c472-41b2-b9a2-c294f4c83d73",
"type": "app-edge",
"sourceNodeId": "start-node",
"targetNodeId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"startPoint": {
"x": 590,
"y": 3660
},
"endPoint": {
"x": 680,
"y": 3210
},
"properties": {
},
"pointsList": [
{
"x": 590,
"y": 3660
},
{
"x": 700,
"y": 3660
},
{
"x": 570,
"y": 3210
},
{
"x": 680,
"y": 3210
}
],
"sourceAnchorId": "start-node_right",
"targetAnchorId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5_left"
},
{
"id": "35cb86dd-f328-429e-a973-12fd7218b696",
"type": "app-edge",
"sourceNodeId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5",
"targetNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"startPoint": {
"x": 1000,
"y": 3210
},
"endPoint": {
"x": 1200,
"y": 3210
},
"properties": {
},
"pointsList": [
{
"x": 1000,
"y": 3210
},
{
"x": 1110,
"y": 3210
},
{
"x": 1090,
"y": 3210
},
{
"x": 1200,
"y": 3210
}
],
"sourceAnchorId": "b931efe5-5b66-46e0-ae3b-0160cb18eeb5_right",
"targetAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_left"
},
{
"id": "e8f6cfe6-7e48-41cd-abd3-abfb5304d0d8",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "4ffe1086-25df-4c85-b168-979b5bbf0a26",
"startPoint": {
"x": 1780,
"y": 3073.775
},
"endPoint": {
"x": 2010,
"y": 2480
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3073.775
},
{
"x": 1890,
"y": 3073.775
},
{
"x": 1900,
"y": 2480
},
{
"x": 2010,
"y": 2480
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_1009_right",
"targetAnchorId": "4ffe1086-25df-4c85-b168-979b5bbf0a26_left"
},
{
"id": "994ff325-6f7a-4ebc-b61b-10e15519d6d2",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb",
"startPoint": {
"x": 1780,
"y": 3203
},
"endPoint": {
"x": 2000,
"y": 3200
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3203
},
{
"x": 1890,
"y": 3203
},
{
"x": 1890,
"y": 3200
},
{
"x": 2000,
"y": 3200
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_4908_right",
"targetAnchorId": "f1f1ee18-5a02-46f6-b4e6-226253cdffbb_left"
},
{
"id": "19270caf-bb9f-4ba7-9bf8-200aa70fecd5",
"type": "app-edge",
"sourceNodeId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b",
"targetNodeId": "309d0eef-c597-46b5-8d51-b9a28aaef4c7",
"startPoint": {
"x": 1780,
"y": 3293.6124999999997
},
"endPoint": {
"x": 2000,
"y": 3970
},
"properties": {
},
"pointsList": [
{
"x": 1780,
"y": 3293.6124999999997
},
{
"x": 1890,
"y": 3293.6124999999997
},
{
"x": 1890,
"y": 3970
},
{
"x": 2000,
"y": 3970
}
],
"sourceAnchorId": "fc60863a-dec2-4854-9e5a-7a44b7187a2b_161_right",
"targetAnchorId": "309d0eef-c597-46b5-8d51-b9a28aaef4c7_left"
}
]
}

View File

@ -0,0 +1,256 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file i_step_node.py
@date2024/6/3 14:57
@desc:
"""
import time
import uuid
from abc import abstractmethod
from hashlib import sha1
from typing import Type, Dict, List
from django.core import cache
from django.db.models import QuerySet
from rest_framework import serializers
from rest_framework.exceptions import ValidationError, ErrorDetail
from application.flow.common import Answer, NodeChunk
from application.models import ChatRecord
from application.models.api_key_model import ApplicationPublicAccessClient
from common.constants.authentication_type import AuthenticationType
from common.field.common import InstanceField
from common.util.field_message import ErrMessage
chat_cache = cache.caches['chat_cache']
def write_context(step_variable: Dict, global_variable: Dict, node, workflow):
if step_variable is not None:
for key in step_variable:
node.context[key] = step_variable[key]
if workflow.is_result(node, NodeResult(step_variable, global_variable)) and 'answer' in step_variable:
answer = step_variable['answer']
yield answer
node.answer_text = answer
if global_variable is not None:
for key in global_variable:
workflow.context[key] = global_variable[key]
node.context['run_time'] = time.time() - node.context['start_time']
def is_interrupt(node, step_variable: Dict, global_variable: Dict):
return node.type == 'form-node' and not node.context.get('is_submit', False)
class WorkFlowPostHandler:
def __init__(self, chat_info, client_id, client_type):
self.chat_info = chat_info
self.client_id = client_id
self.client_type = client_type
def handler(self, chat_id,
chat_record_id,
answer,
workflow):
question = workflow.params['question']
details = workflow.get_runtime_details()
message_tokens = sum([row.get('message_tokens') for row in details.values() if
'message_tokens' in row and row.get('message_tokens') is not None])
answer_tokens = sum([row.get('answer_tokens') for row in details.values() if
'answer_tokens' in row and row.get('answer_tokens') is not None])
answer_text_list = workflow.get_answer_text_list()
answer_text = '\n\n'.join(
'\n\n'.join([a.get('content') for a in answer]) for answer in
answer_text_list)
if workflow.chat_record is not None:
chat_record = workflow.chat_record
chat_record.answer_text = answer_text
chat_record.details = details
chat_record.message_tokens = message_tokens
chat_record.answer_tokens = answer_tokens
chat_record.answer_text_list = answer_text_list
chat_record.run_time = time.time() - workflow.context['start_time']
else:
chat_record = ChatRecord(id=chat_record_id,
chat_id=chat_id,
problem_text=question,
answer_text=answer_text,
details=details,
message_tokens=message_tokens,
answer_tokens=answer_tokens,
answer_text_list=answer_text_list,
run_time=time.time() - workflow.context['start_time'],
index=0)
asker = workflow.context.get('asker', None)
self.chat_info.append_chat_record(chat_record, self.client_id, asker)
# 重新设置缓存
chat_cache.set(chat_id,
self.chat_info, timeout=60 * 30)
if self.client_type == AuthenticationType.APPLICATION_ACCESS_TOKEN.value:
application_public_access_client = (QuerySet(ApplicationPublicAccessClient)
.filter(client_id=self.client_id,
application_id=self.chat_info.application.id).first())
if application_public_access_client is not None:
application_public_access_client.access_num = application_public_access_client.access_num + 1
application_public_access_client.intraday_access_num = application_public_access_client.intraday_access_num + 1
application_public_access_client.save()
class NodeResult:
def __init__(self, node_variable: Dict, workflow_variable: Dict,
_write_context=write_context, _is_interrupt=is_interrupt):
self._write_context = _write_context
self.node_variable = node_variable
self.workflow_variable = workflow_variable
self._is_interrupt = _is_interrupt
def write_context(self, node, workflow):
return self._write_context(self.node_variable, self.workflow_variable, node, workflow)
def is_assertion_result(self):
return 'branch_id' in self.node_variable
def is_interrupt_exec(self, current_node):
"""
是否中断执行
@param current_node:
@return:
"""
return self._is_interrupt(current_node, self.node_variable, self.workflow_variable)
class ReferenceAddressSerializer(serializers.Serializer):
node_id = serializers.CharField(required=True, error_messages=ErrMessage.char("节点id"))
fields = serializers.ListField(
child=serializers.CharField(required=True, error_messages=ErrMessage.char("节点字段")), required=True,
error_messages=ErrMessage.list("节点字段数组"))
class FlowParamsSerializer(serializers.Serializer):
# 历史对答
history_chat_record = serializers.ListField(child=InstanceField(model_type=ChatRecord, required=True),
error_messages=ErrMessage.list("历史对答"))
question = serializers.CharField(required=True, error_messages=ErrMessage.list("用户问题"))
chat_id = serializers.CharField(required=True, error_messages=ErrMessage.list("对话id"))
chat_record_id = serializers.CharField(required=True, error_messages=ErrMessage.char("对话记录id"))
stream = serializers.BooleanField(required=True, error_messages=ErrMessage.boolean("流式输出"))
client_id = serializers.CharField(required=False, error_messages=ErrMessage.char("客户端id"))
client_type = serializers.CharField(required=False, error_messages=ErrMessage.char("客户端类型"))
user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid("用户id"))
re_chat = serializers.BooleanField(required=True, error_messages=ErrMessage.boolean("换个答案"))
class INode:
view_type = 'many_view'
@abstractmethod
def save_context(self, details, workflow_manage):
pass
def get_answer_list(self) -> List[Answer] | None:
if self.answer_text is None:
return None
reasoning_content_enable = self.context.get('model_setting', {}).get('reasoning_content_enable', False)
return [
Answer(self.answer_text, self.view_type, self.runtime_node_id, self.workflow_params['chat_record_id'], {},
self.runtime_node_id, self.context.get('reasoning_content', '') if reasoning_content_enable else '')]
def __init__(self, node, workflow_params, workflow_manage, up_node_id_list=None,
get_node_params=lambda node: node.properties.get('node_data')):
# 当前步骤上下文,用于存储当前步骤信息
self.status = 200
self.err_message = ''
self.node = node
self.node_params = get_node_params(node)
self.workflow_params = workflow_params
self.workflow_manage = workflow_manage
self.node_params_serializer = None
self.flow_params_serializer = None
self.context = {}
self.answer_text = None
self.id = node.id
if up_node_id_list is None:
up_node_id_list = []
self.up_node_id_list = up_node_id_list
self.node_chunk = NodeChunk()
self.runtime_node_id = sha1(uuid.NAMESPACE_DNS.bytes + bytes(str(uuid.uuid5(uuid.NAMESPACE_DNS,
"".join([*sorted(up_node_id_list),
node.id]))),
"utf-8")).hexdigest()
def valid_args(self, node_params, flow_params):
flow_params_serializer_class = self.get_flow_params_serializer_class()
node_params_serializer_class = self.get_node_params_serializer_class()
if flow_params_serializer_class is not None and flow_params is not None:
self.flow_params_serializer = flow_params_serializer_class(data=flow_params)
self.flow_params_serializer.is_valid(raise_exception=True)
if node_params_serializer_class is not None:
self.node_params_serializer = node_params_serializer_class(data=node_params)
self.node_params_serializer.is_valid(raise_exception=True)
if self.node.properties.get('status', 200) != 200:
raise ValidationError(ErrorDetail(f'节点{self.node.properties.get("stepName")} 不可用'))
def get_reference_field(self, fields: List[str]):
return self.get_field(self.context, fields)
@staticmethod
def get_field(obj, fields: List[str]):
for field in fields:
value = obj.get(field)
if value is None:
return None
else:
obj = value
return obj
@abstractmethod
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
pass
def get_flow_params_serializer_class(self) -> Type[serializers.Serializer]:
return FlowParamsSerializer
def get_write_error_context(self, e):
self.status = 500
self.answer_text = str(e)
self.err_message = str(e)
self.context['run_time'] = time.time() - self.context['start_time']
def write_error_context(answer, status=200):
pass
return write_error_context
def run(self) -> NodeResult:
"""
:return: 执行结果
"""
start_time = time.time()
self.context['start_time'] = start_time
result = self._run()
self.context['run_time'] = time.time() - start_time
return result
def _run(self):
result = self.execute()
return result
def execute(self, **kwargs) -> NodeResult:
pass
def get_details(self, index: int, **kwargs):
"""
运行详情
:return: 步骤详情
"""
return {}

View File

@ -0,0 +1,42 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py.py
@date2024/6/7 14:43
@desc:
"""
from .ai_chat_step_node import *
from .application_node import BaseApplicationNode
from .condition_node import *
from .direct_reply_node import *
from .form_node import *
from .function_lib_node import *
from .function_node import *
from .question_node import *
from .reranker_node import *
from .document_extract_node import *
from .image_understand_step_node import *
from .image_generate_step_node import *
from .search_dataset_node import *
from .speech_to_text_step_node import BaseSpeechToTextNode
from .start_node import *
from .text_to_speech_step_node.impl.base_text_to_speech_node import BaseTextToSpeechNode
from .variable_assign_node import BaseVariableAssignNode
from .mcp_node import BaseMcpNode
node_list = [BaseStartStepNode, BaseChatNode, BaseSearchDatasetNode, BaseQuestionNode,
BaseConditionNode, BaseReplyNode,
BaseFunctionNodeNode, BaseFunctionLibNodeNode, BaseRerankerNode, BaseApplicationNode,
BaseDocumentExtractNode,
BaseImageUnderstandNode, BaseFormNode, BaseSpeechToTextNode, BaseTextToSpeechNode,
BaseImageGenerateNode, BaseVariableAssignNode, BaseMcpNode]
def get_node(node_type):
find_list = [node for node in node_list if node.type == node_type]
if len(find_list) > 0:
return find_list[0]
return None

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py
@date2024/6/11 15:29
@desc:
"""
from .impl import *

View File

@ -0,0 +1,58 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file i_chat_node.py
@date2024/6/4 13:58
@desc:
"""
from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.util.field_message import ErrMessage
class ChatNodeSerializer(serializers.Serializer):
model_id = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Model id")))
system = serializers.CharField(required=False, allow_blank=True, allow_null=True,
error_messages=ErrMessage.char(_("Role Setting")))
prompt = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Prompt word")))
# 多轮对话数量
dialogue_number = serializers.IntegerField(required=True, error_messages=ErrMessage.integer(
_("Number of multi-round conversations")))
is_result = serializers.BooleanField(required=False,
error_messages=ErrMessage.boolean(_('Whether to return content')))
model_params_setting = serializers.DictField(required=False,
error_messages=ErrMessage.dict(_("Model parameter settings")))
model_setting = serializers.DictField(required=False,
error_messages=ErrMessage.dict('Model settings'))
dialogue_type = serializers.CharField(required=False, allow_blank=True, allow_null=True,
error_messages=ErrMessage.char(_("Context Type")))
mcp_enable = serializers.BooleanField(required=False,
error_messages=ErrMessage.boolean(_("Whether to enable MCP")))
mcp_servers = serializers.JSONField(required=False, error_messages=ErrMessage.list(_("MCP Server")))
class IChatNode(INode):
type = 'ai-chat-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return ChatNodeSerializer
def _run(self):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)
def execute(self, model_id, system, prompt, dialogue_number, history_chat_record, stream, chat_id,
chat_record_id,
model_params_setting=None,
dialogue_type=None,
model_setting=None,
mcp_enable=False,
mcp_servers=None,
**kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py
@date2024/6/11 15:34
@desc:
"""
from .base_chat_node import BaseChatNode

View File

@ -0,0 +1,288 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file base_question_node.py
@date2024/6/4 14:30
@desc:
"""
import asyncio
import json
import re
import time
from functools import reduce
from types import AsyncGeneratorType
from typing import List, Dict
from django.db.models import QuerySet
from langchain.schema import HumanMessage, SystemMessage
from langchain_core.messages import BaseMessage, AIMessage, AIMessageChunk, ToolMessage
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from application.flow.i_step_node import NodeResult, INode
from application.flow.step_node.ai_chat_step_node.i_chat_node import IChatNode
from application.flow.tools import Reasoning
from setting.models import Model
from setting.models_provider import get_model_credential
from setting.models_provider.tools import get_model_instance_by_model_user_id
tool_message_template = """
<details>
<summary>
<strong>Called MCP Tool: <em>%s</em></strong>
</summary>
```json
%s
```
</details>
"""
def _write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow, answer: str,
reasoning_content: str):
chat_model = node_variable.get('chat_model')
message_tokens = chat_model.get_num_tokens_from_messages(node_variable.get('message_list'))
answer_tokens = chat_model.get_num_tokens(answer)
node.context['message_tokens'] = message_tokens
node.context['answer_tokens'] = answer_tokens
node.context['answer'] = answer
node.context['history_message'] = node_variable['history_message']
node.context['question'] = node_variable['question']
node.context['run_time'] = time.time() - node.context['start_time']
node.context['reasoning_content'] = reasoning_content
if workflow.is_result(node, NodeResult(node_variable, workflow_variable)):
node.answer_text = answer
def write_context_stream(node_variable: Dict, workflow_variable: Dict, node: INode, workflow):
"""
写入上下文数据 (流式)
@param node_variable: 节点数据
@param workflow_variable: 全局数据
@param node: 节点
@param workflow: 工作流管理器
"""
response = node_variable.get('result')
answer = ''
reasoning_content = ''
model_setting = node.context.get('model_setting',
{'reasoning_content_enable': False, 'reasoning_content_end': '</think>',
'reasoning_content_start': '<think>'})
reasoning = Reasoning(model_setting.get('reasoning_content_start', '<think>'),
model_setting.get('reasoning_content_end', '</think>'))
response_reasoning_content = False
for chunk in response:
reasoning_chunk = reasoning.get_reasoning_content(chunk)
content_chunk = reasoning_chunk.get('content')
if 'reasoning_content' in chunk.additional_kwargs:
response_reasoning_content = True
reasoning_content_chunk = chunk.additional_kwargs.get('reasoning_content', '')
else:
reasoning_content_chunk = reasoning_chunk.get('reasoning_content')
answer += content_chunk
if reasoning_content_chunk is None:
reasoning_content_chunk = ''
reasoning_content += reasoning_content_chunk
yield {'content': content_chunk,
'reasoning_content': reasoning_content_chunk if model_setting.get('reasoning_content_enable',
False) else ''}
reasoning_chunk = reasoning.get_end_reasoning_content()
answer += reasoning_chunk.get('content')
reasoning_content_chunk = ""
if not response_reasoning_content:
reasoning_content_chunk = reasoning_chunk.get(
'reasoning_content')
yield {'content': reasoning_chunk.get('content'),
'reasoning_content': reasoning_content_chunk if model_setting.get('reasoning_content_enable',
False) else ''}
_write_context(node_variable, workflow_variable, node, workflow, answer, reasoning_content)
async def _yield_mcp_response(chat_model, message_list, mcp_servers):
async with MultiServerMCPClient(json.loads(mcp_servers)) as client:
agent = create_react_agent(chat_model, client.get_tools())
response = agent.astream({"messages": message_list}, stream_mode='messages')
async for chunk in response:
if isinstance(chunk[0], ToolMessage):
content = tool_message_template % (chunk[0].name, chunk[0].content)
chunk[0].content = content
yield chunk[0]
if isinstance(chunk[0], AIMessageChunk):
yield chunk[0]
def mcp_response_generator(chat_model, message_list, mcp_servers):
loop = asyncio.new_event_loop()
try:
async_gen = _yield_mcp_response(chat_model, message_list, mcp_servers)
while True:
try:
chunk = loop.run_until_complete(anext_async(async_gen))
yield chunk
except StopAsyncIteration:
break
except Exception as e:
print(f'exception: {e}')
finally:
loop.close()
async def anext_async(agen):
return await agen.__anext__()
def write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow):
"""
写入上下文数据
@param node_variable: 节点数据
@param workflow_variable: 全局数据
@param node: 节点实例对象
@param workflow: 工作流管理器
"""
response = node_variable.get('result')
model_setting = node.context.get('model_setting',
{'reasoning_content_enable': False, 'reasoning_content_end': '</think>',
'reasoning_content_start': '<think>'})
reasoning = Reasoning(model_setting.get('reasoning_content_start'), model_setting.get('reasoning_content_end'))
reasoning_result = reasoning.get_reasoning_content(response)
reasoning_result_end = reasoning.get_end_reasoning_content()
content = reasoning_result.get('content') + reasoning_result_end.get('content')
if 'reasoning_content' in response.response_metadata:
reasoning_content = response.response_metadata.get('reasoning_content', '')
else:
reasoning_content = reasoning_result.get('reasoning_content') + reasoning_result_end.get('reasoning_content')
_write_context(node_variable, workflow_variable, node, workflow, content, reasoning_content)
def get_default_model_params_setting(model_id):
model = QuerySet(Model).filter(id=model_id).first()
credential = get_model_credential(model.provider, model.model_type, model.model_name)
model_params_setting = credential.get_model_params_setting_form(
model.model_name).get_default_form_data()
return model_params_setting
def get_node_message(chat_record, runtime_node_id):
node_details = chat_record.get_node_details_runtime_node_id(runtime_node_id)
if node_details is None:
return []
return [HumanMessage(node_details.get('question')), AIMessage(node_details.get('answer'))]
def get_workflow_message(chat_record):
return [chat_record.get_human_message(), chat_record.get_ai_message()]
def get_message(chat_record, dialogue_type, runtime_node_id):
return get_node_message(chat_record, runtime_node_id) if dialogue_type == 'NODE' else get_workflow_message(
chat_record)
class BaseChatNode(IChatNode):
def save_context(self, details, workflow_manage):
self.context['answer'] = details.get('answer')
self.context['question'] = details.get('question')
self.context['reasoning_content'] = details.get('reasoning_content')
if self.node_params.get('is_result', False):
self.answer_text = details.get('answer')
def execute(self, model_id, system, prompt, dialogue_number, history_chat_record, stream, chat_id, chat_record_id,
model_params_setting=None,
dialogue_type=None,
model_setting=None,
mcp_enable=False,
mcp_servers=None,
**kwargs) -> NodeResult:
if dialogue_type is None:
dialogue_type = 'WORKFLOW'
if model_params_setting is None:
model_params_setting = get_default_model_params_setting(model_id)
if model_setting is None:
model_setting = {'reasoning_content_enable': False, 'reasoning_content_end': '</think>',
'reasoning_content_start': '<think>'}
self.context['model_setting'] = model_setting
chat_model = get_model_instance_by_model_user_id(model_id, self.flow_params_serializer.data.get('user_id'),
**model_params_setting)
history_message = self.get_history_message(history_chat_record, dialogue_number, dialogue_type,
self.runtime_node_id)
self.context['history_message'] = history_message
question = self.generate_prompt_question(prompt)
self.context['question'] = question.content
system = self.workflow_manage.generate_prompt(system)
self.context['system'] = system
message_list = self.generate_message_list(system, prompt, history_message)
self.context['message_list'] = message_list
if mcp_enable and mcp_servers is not None and '"stdio"' not in mcp_servers:
r = mcp_response_generator(chat_model, message_list, mcp_servers)
return NodeResult(
{'result': r, 'chat_model': chat_model, 'message_list': message_list,
'history_message': history_message, 'question': question.content}, {},
_write_context=write_context_stream)
if stream:
r = chat_model.stream(message_list)
return NodeResult({'result': r, 'chat_model': chat_model, 'message_list': message_list,
'history_message': history_message, 'question': question.content}, {},
_write_context=write_context_stream)
else:
r = chat_model.invoke(message_list)
return NodeResult({'result': r, 'chat_model': chat_model, 'message_list': message_list,
'history_message': history_message, 'question': question.content}, {},
_write_context=write_context)
@staticmethod
def get_history_message(history_chat_record, dialogue_number, dialogue_type, runtime_node_id):
start_index = len(history_chat_record) - dialogue_number
history_message = reduce(lambda x, y: [*x, *y], [
get_message(history_chat_record[index], dialogue_type, runtime_node_id)
for index in
range(start_index if start_index > 0 else 0, len(history_chat_record))], [])
for message in history_message:
if isinstance(message.content, str):
message.content = re.sub('<form_rander>[\d\D]*?<\/form_rander>', '', message.content)
return history_message
def generate_prompt_question(self, prompt):
return HumanMessage(self.workflow_manage.generate_prompt(prompt))
def generate_message_list(self, system: str, prompt: str, history_message):
if system is not None and len(system) > 0:
return [SystemMessage(self.workflow_manage.generate_prompt(system)), *history_message,
HumanMessage(self.workflow_manage.generate_prompt(prompt))]
else:
return [*history_message, HumanMessage(self.workflow_manage.generate_prompt(prompt))]
@staticmethod
def reset_message_list(message_list: List[BaseMessage], answer_text):
result = [{'role': 'user' if isinstance(message, HumanMessage) else 'ai', 'content': message.content} for
message
in
message_list]
result.append({'role': 'ai', 'content': answer_text})
return result
def get_details(self, index: int, **kwargs):
return {
'name': self.node.properties.get('stepName'),
"index": index,
'run_time': self.context.get('run_time'),
'system': self.context.get('system'),
'history_message': [{'content': message.content, 'role': message.type} for message in
(self.context.get('history_message') if self.context.get(
'history_message') is not None else [])],
'question': self.context.get('question'),
'answer': self.context.get('answer'),
'reasoning_content': self.context.get('reasoning_content'),
'type': self.node.type,
'message_tokens': self.context.get('message_tokens'),
'answer_tokens': self.context.get('answer_tokens'),
'status': self.status,
'err_message': self.err_message
}

View File

@ -0,0 +1,2 @@
# coding=utf-8
from .impl import *

View File

@ -0,0 +1,86 @@
# coding=utf-8
from typing import Type
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.util.field_message import ErrMessage
from django.utils.translation import gettext_lazy as _
class ApplicationNodeSerializer(serializers.Serializer):
application_id = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Application ID")))
question_reference_address = serializers.ListField(required=True,
error_messages=ErrMessage.list(_("User Questions")))
api_input_field_list = serializers.ListField(required=False, error_messages=ErrMessage.list(_("API Input Fields")))
user_input_field_list = serializers.ListField(required=False,
error_messages=ErrMessage.uuid(_("User Input Fields")))
image_list = serializers.ListField(required=False, error_messages=ErrMessage.list(_("picture")))
document_list = serializers.ListField(required=False, error_messages=ErrMessage.list(_("document")))
audio_list = serializers.ListField(required=False, error_messages=ErrMessage.list(_("Audio")))
child_node = serializers.DictField(required=False, allow_null=True,
error_messages=ErrMessage.dict(_("Child Nodes")))
node_data = serializers.DictField(required=False, allow_null=True, error_messages=ErrMessage.dict(_("Form Data")))
class IApplicationNode(INode):
type = 'application-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return ApplicationNodeSerializer
def _run(self):
question = self.workflow_manage.get_reference_field(
self.node_params_serializer.data.get('question_reference_address')[0],
self.node_params_serializer.data.get('question_reference_address')[1:])
kwargs = {}
for api_input_field in self.node_params_serializer.data.get('api_input_field_list', []):
value = api_input_field.get('value', [''])[0] if api_input_field.get('value') else ''
kwargs[api_input_field['variable']] = self.workflow_manage.get_reference_field(value,
api_input_field['value'][
1:]) if value != '' else ''
for user_input_field in self.node_params_serializer.data.get('user_input_field_list', []):
value = user_input_field.get('value', [''])[0] if user_input_field.get('value') else ''
kwargs[user_input_field['field']] = self.workflow_manage.get_reference_field(value,
user_input_field['value'][
1:]) if value != '' else ''
# 判断是否包含这个属性
app_document_list = self.node_params_serializer.data.get('document_list', [])
if app_document_list and len(app_document_list) > 0:
app_document_list = self.workflow_manage.get_reference_field(
app_document_list[0],
app_document_list[1:])
for document in app_document_list:
if 'file_id' not in document:
raise ValueError(
_("Parameter value error: The uploaded document lacks file_id, and the document upload fails"))
app_image_list = self.node_params_serializer.data.get('image_list', [])
if app_image_list and len(app_image_list) > 0:
app_image_list = self.workflow_manage.get_reference_field(
app_image_list[0],
app_image_list[1:])
for image in app_image_list:
if 'file_id' not in image:
raise ValueError(
_("Parameter value error: The uploaded image lacks file_id, and the image upload fails"))
app_audio_list = self.node_params_serializer.data.get('audio_list', [])
if app_audio_list and len(app_audio_list) > 0:
app_audio_list = self.workflow_manage.get_reference_field(
app_audio_list[0],
app_audio_list[1:])
for audio in app_audio_list:
if 'file_id' not in audio:
raise ValueError(
_("Parameter value error: The uploaded audio lacks file_id, and the audio upload fails."))
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data,
app_document_list=app_document_list, app_image_list=app_image_list,
app_audio_list=app_audio_list,
message=str(question), **kwargs)
def execute(self, application_id, message, chat_id, chat_record_id, stream, re_chat, client_id, client_type,
app_document_list=None, app_image_list=None, app_audio_list=None, child_node=None, node_data=None,
**kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,2 @@
# coding=utf-8
from .base_application_node import BaseApplicationNode

View File

@ -0,0 +1,267 @@
# coding=utf-8
import json
import re
import time
import uuid
from typing import Dict, List
from application.flow.common import Answer
from application.flow.i_step_node import NodeResult, INode
from application.flow.step_node.application_node.i_application_node import IApplicationNode
from application.models import Chat
def string_to_uuid(input_str):
return str(uuid.uuid5(uuid.NAMESPACE_DNS, input_str))
def _is_interrupt_exec(node, node_variable: Dict, workflow_variable: Dict):
return node_variable.get('is_interrupt_exec', False)
def _write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow, answer: str,
reasoning_content: str):
result = node_variable.get('result')
node.context['application_node_dict'] = node_variable.get('application_node_dict')
node.context['node_dict'] = node_variable.get('node_dict', {})
node.context['is_interrupt_exec'] = node_variable.get('is_interrupt_exec')
node.context['message_tokens'] = result.get('usage', {}).get('prompt_tokens', 0)
node.context['answer_tokens'] = result.get('usage', {}).get('completion_tokens', 0)
node.context['answer'] = answer
node.context['result'] = answer
node.context['reasoning_content'] = reasoning_content
node.context['question'] = node_variable['question']
node.context['run_time'] = time.time() - node.context['start_time']
if workflow.is_result(node, NodeResult(node_variable, workflow_variable)):
node.answer_text = answer
def write_context_stream(node_variable: Dict, workflow_variable: Dict, node: INode, workflow):
"""
写入上下文数据 (流式)
@param node_variable: 节点数据
@param workflow_variable: 全局数据
@param node: 节点
@param workflow: 工作流管理器
"""
response = node_variable.get('result')
answer = ''
reasoning_content = ''
usage = {}
node_child_node = {}
application_node_dict = node.context.get('application_node_dict', {})
is_interrupt_exec = False
for chunk in response:
# 先把流转成字符串
response_content = chunk.decode('utf-8')[6:]
response_content = json.loads(response_content)
content = response_content.get('content', '')
runtime_node_id = response_content.get('runtime_node_id', '')
chat_record_id = response_content.get('chat_record_id', '')
child_node = response_content.get('child_node')
view_type = response_content.get('view_type')
node_type = response_content.get('node_type')
real_node_id = response_content.get('real_node_id')
node_is_end = response_content.get('node_is_end', False)
_reasoning_content = response_content.get('reasoning_content', '')
if node_type == 'form-node':
is_interrupt_exec = True
answer += content
reasoning_content += _reasoning_content
node_child_node = {'runtime_node_id': runtime_node_id, 'chat_record_id': chat_record_id,
'child_node': child_node}
if real_node_id is not None:
application_node = application_node_dict.get(real_node_id, None)
if application_node is None:
application_node_dict[real_node_id] = {'content': content,
'runtime_node_id': runtime_node_id,
'chat_record_id': chat_record_id,
'child_node': child_node,
'index': len(application_node_dict),
'view_type': view_type,
'reasoning_content': _reasoning_content}
else:
application_node['content'] += content
application_node['reasoning_content'] += _reasoning_content
yield {'content': content,
'node_type': node_type,
'runtime_node_id': runtime_node_id, 'chat_record_id': chat_record_id,
'reasoning_content': _reasoning_content,
'child_node': child_node,
'real_node_id': real_node_id,
'node_is_end': node_is_end,
'view_type': view_type}
usage = response_content.get('usage', {})
node_variable['result'] = {'usage': usage}
node_variable['is_interrupt_exec'] = is_interrupt_exec
node_variable['child_node'] = node_child_node
node_variable['application_node_dict'] = application_node_dict
_write_context(node_variable, workflow_variable, node, workflow, answer, reasoning_content)
def write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow):
"""
写入上下文数据
@param node_variable: 节点数据
@param workflow_variable: 全局数据
@param node: 节点实例对象
@param workflow: 工作流管理器
"""
response = node_variable.get('result', {}).get('data', {})
node_variable['result'] = {'usage': {'completion_tokens': response.get('completion_tokens'),
'prompt_tokens': response.get('prompt_tokens')}}
answer = response.get('content', '') or "抱歉,没有查找到相关内容,请重新描述您的问题或提供更多信息。"
reasoning_content = response.get('reasoning_content', '')
answer_list = response.get('answer_list', [])
node_variable['application_node_dict'] = {answer.get('real_node_id'): {**answer, 'index': index} for answer, index
in
zip(answer_list, range(len(answer_list)))}
_write_context(node_variable, workflow_variable, node, workflow, answer, reasoning_content)
def reset_application_node_dict(application_node_dict, runtime_node_id, node_data):
try:
if application_node_dict is None:
return
for key in application_node_dict:
application_node = application_node_dict[key]
if application_node.get('runtime_node_id') == runtime_node_id:
content: str = application_node.get('content')
match = re.search('<form_rander>.*?</form_rander>', content)
if match:
form_setting_str = match.group().replace('<form_rander>', '').replace('</form_rander>', '')
form_setting = json.loads(form_setting_str)
form_setting['is_submit'] = True
form_setting['form_data'] = node_data
value = f'<form_rander>{json.dumps(form_setting)}</form_rander>'
res = re.sub('<form_rander>.*?</form_rander>',
'${value}', content)
application_node['content'] = res.replace('${value}', value)
except Exception as e:
pass
class BaseApplicationNode(IApplicationNode):
def get_answer_list(self) -> List[Answer] | None:
if self.answer_text is None:
return None
application_node_dict = self.context.get('application_node_dict')
if application_node_dict is None or len(application_node_dict) == 0:
return [
Answer(self.answer_text, self.view_type, self.runtime_node_id, self.workflow_params['chat_record_id'],
self.context.get('child_node'), self.runtime_node_id, '')]
else:
return [Answer(n.get('content'), n.get('view_type'), self.runtime_node_id,
self.workflow_params['chat_record_id'], {'runtime_node_id': n.get('runtime_node_id'),
'chat_record_id': n.get('chat_record_id')
, 'child_node': n.get('child_node')}, n.get('real_node_id'),
n.get('reasoning_content', ''))
for n in
sorted(application_node_dict.values(), key=lambda item: item.get('index'))]
def save_context(self, details, workflow_manage):
self.context['answer'] = details.get('answer')
self.context['result'] = details.get('answer')
self.context['question'] = details.get('question')
self.context['type'] = details.get('type')
self.context['reasoning_content'] = details.get('reasoning_content')
if self.node_params.get('is_result', False):
self.answer_text = details.get('answer')
def execute(self, application_id, message, chat_id, chat_record_id, stream, re_chat, client_id, client_type,
app_document_list=None, app_image_list=None, app_audio_list=None, child_node=None, node_data=None,
**kwargs) -> NodeResult:
from application.serializers.chat_message_serializers import ChatMessageSerializer
# 生成嵌入应用的chat_id
current_chat_id = string_to_uuid(chat_id + application_id)
Chat.objects.get_or_create(id=current_chat_id, defaults={
'application_id': application_id,
'abstract': message[0:1024],
'client_id': client_id,
})
if app_document_list is None:
app_document_list = []
if app_image_list is None:
app_image_list = []
if app_audio_list is None:
app_audio_list = []
runtime_node_id = None
record_id = None
child_node_value = None
if child_node is not None:
runtime_node_id = child_node.get('runtime_node_id')
record_id = child_node.get('chat_record_id')
child_node_value = child_node.get('child_node')
application_node_dict = self.context.get('application_node_dict')
reset_application_node_dict(application_node_dict, runtime_node_id, node_data)
response = ChatMessageSerializer(
data={'chat_id': current_chat_id, 'message': message,
're_chat': re_chat,
'stream': stream,
'application_id': application_id,
'client_id': client_id,
'client_type': client_type,
'document_list': app_document_list,
'image_list': app_image_list,
'audio_list': app_audio_list,
'runtime_node_id': runtime_node_id,
'chat_record_id': record_id,
'child_node': child_node_value,
'node_data': node_data,
'form_data': kwargs}).chat()
if response.status_code == 200:
if stream:
content_generator = response.streaming_content
return NodeResult({'result': content_generator, 'question': message}, {},
_write_context=write_context_stream, _is_interrupt=_is_interrupt_exec)
else:
data = json.loads(response.content)
return NodeResult({'result': data, 'question': message}, {},
_write_context=write_context, _is_interrupt=_is_interrupt_exec)
def get_details(self, index: int, **kwargs):
global_fields = []
for api_input_field in self.node_params_serializer.data.get('api_input_field_list', []):
value = api_input_field.get('value', [''])[0] if api_input_field.get('value') else ''
global_fields.append({
'label': api_input_field['variable'],
'key': api_input_field['variable'],
'value': self.workflow_manage.get_reference_field(
value,
api_input_field['value'][1:]
) if value != '' else ''
})
for user_input_field in self.node_params_serializer.data.get('user_input_field_list', []):
value = user_input_field.get('value', [''])[0] if user_input_field.get('value') else ''
global_fields.append({
'label': user_input_field['label'],
'key': user_input_field['field'],
'value': self.workflow_manage.get_reference_field(
value,
user_input_field['value'][1:]
) if value != '' else ''
})
return {
'name': self.node.properties.get('stepName'),
"index": index,
"info": self.node.properties.get('node_data'),
'run_time': self.context.get('run_time'),
'question': self.context.get('question'),
'answer': self.context.get('answer'),
'reasoning_content': self.context.get('reasoning_content'),
'type': self.node.type,
'message_tokens': self.context.get('message_tokens'),
'answer_tokens': self.context.get('answer_tokens'),
'status': self.status,
'err_message': self.err_message,
'global_fields': global_fields,
'document_list': self.workflow_manage.document_list,
'image_list': self.workflow_manage.image_list,
'audio_list': self.workflow_manage.audio_list,
'application_node_dict': self.context.get('application_node_dict')
}

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py.py
@date2024/6/7 14:43
@desc:
"""
from .impl import *

View File

@ -0,0 +1,30 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py.py
@date2024/6/7 14:43
@desc:
"""
from .contain_compare import *
from .equal_compare import *
from .ge_compare import *
from .gt_compare import *
from .is_not_null_compare import *
from .is_not_true import IsNotTrueCompare
from .is_null_compare import *
from .is_true import IsTrueCompare
from .le_compare import *
from .len_equal_compare import *
from .len_ge_compare import *
from .len_gt_compare import *
from .len_le_compare import *
from .len_lt_compare import *
from .lt_compare import *
from .not_contain_compare import *
compare_handle_list = [GECompare(), GTCompare(), ContainCompare(), EqualCompare(), LTCompare(), LECompare(),
LenLECompare(), LenGECompare(), LenEqualCompare(), LenGTCompare(), LenLTCompare(),
IsNullCompare(),
IsNotNullCompare(), NotContainCompare(), IsTrueCompare(), IsNotTrueCompare()]

View File

@ -0,0 +1,20 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file compare.py
@date2024/6/7 14:37
@desc:
"""
from abc import abstractmethod
from typing import List
class Compare:
@abstractmethod
def support(self, node_id, fields: List[str], source_value, compare, target_value):
pass
@abstractmethod
def compare(self, source_value, compare, target_value):
pass

View File

@ -0,0 +1,23 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file contain_compare.py
@date2024/6/11 10:02
@desc:
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class ContainCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'contain':
return True
def compare(self, source_value, compare, target_value):
if isinstance(source_value, str):
return str(target_value) in source_value
return any([str(item) == str(target_value) for item in source_value])

View File

@ -0,0 +1,21 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file equal_compare.py
@date2024/6/7 14:44
@desc:
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class EqualCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'eq':
return True
def compare(self, source_value, compare, target_value):
return str(source_value) == str(target_value)

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file lt_compare.py
@date2024/6/11 9:52
@desc: 大于比较器
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class GECompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'ge':
return True
def compare(self, source_value, compare, target_value):
try:
return float(source_value) >= float(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file lt_compare.py
@date2024/6/11 9:52
@desc: 大于比较器
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class GTCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'gt':
return True
def compare(self, source_value, compare, target_value):
try:
return float(source_value) > float(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,21 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file is_not_null_compare.py
@date2024/6/28 10:45
@desc:
"""
from typing import List
from application.flow.step_node.condition_node.compare import Compare
class IsNotNullCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'is_not_null':
return True
def compare(self, source_value, compare, target_value):
return source_value is not None and len(source_value) > 0

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file is_not_true.py
@date2025/4/7 13:44
@desc:
"""
from typing import List
from application.flow.step_node.condition_node.compare import Compare
class IsNotTrueCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'is_not_true':
return True
def compare(self, source_value, compare, target_value):
try:
return source_value is False
except Exception as e:
return False

View File

@ -0,0 +1,21 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file is_null_compare.py
@date2024/6/28 10:45
@desc:
"""
from typing import List
from application.flow.step_node.condition_node.compare import Compare
class IsNullCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'is_null':
return True
def compare(self, source_value, compare, target_value):
return source_value is None or len(source_value) == 0

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file IsTrue.py
@date2025/4/7 13:38
@desc:
"""
from typing import List
from application.flow.step_node.condition_node.compare import Compare
class IsTrueCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'is_true':
return True
def compare(self, source_value, compare, target_value):
try:
return source_value is True
except Exception as e:
return False

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file lt_compare.py
@date2024/6/11 9:52
@desc: 小于比较器
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class LECompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'le':
return True
def compare(self, source_value, compare, target_value):
try:
return float(source_value) <= float(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file equal_compare.py
@date2024/6/7 14:44
@desc:
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class LenEqualCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'len_eq':
return True
def compare(self, source_value, compare, target_value):
try:
return len(source_value) == int(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file lt_compare.py
@date2024/6/11 9:52
@desc: 大于比较器
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class LenGECompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'len_ge':
return True
def compare(self, source_value, compare, target_value):
try:
return len(source_value) >= int(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file lt_compare.py
@date2024/6/11 9:52
@desc: 大于比较器
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class LenGTCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'len_gt':
return True
def compare(self, source_value, compare, target_value):
try:
return len(source_value) > int(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file lt_compare.py
@date2024/6/11 9:52
@desc: 小于比较器
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class LenLECompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'len_le':
return True
def compare(self, source_value, compare, target_value):
try:
return len(source_value) <= int(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file lt_compare.py
@date2024/6/11 9:52
@desc: 小于比较器
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class LenLTCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'len_lt':
return True
def compare(self, source_value, compare, target_value):
try:
return len(source_value) < int(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,24 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file lt_compare.py
@date2024/6/11 9:52
@desc: 小于比较器
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class LTCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'lt':
return True
def compare(self, source_value, compare, target_value):
try:
return float(source_value) < float(target_value)
except Exception as e:
return False

View File

@ -0,0 +1,23 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file contain_compare.py
@date2024/6/11 10:02
@desc:
"""
from typing import List
from application.flow.step_node.condition_node.compare.compare import Compare
class NotContainCompare(Compare):
def support(self, node_id, fields: List[str], source_value, compare, target_value):
if compare == 'not_contain':
return True
def compare(self, source_value, compare, target_value):
if isinstance(source_value, str):
return str(target_value) not in source_value
return not any([str(item) == str(target_value) for item in source_value])

View File

@ -0,0 +1,39 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file i_condition_node.py
@date2024/6/7 9:54
@desc:
"""
from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from application.flow.i_step_node import INode
from common.util.field_message import ErrMessage
class ConditionSerializer(serializers.Serializer):
compare = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Comparator")))
value = serializers.CharField(required=True, error_messages=ErrMessage.char(_("value")))
field = serializers.ListField(required=True, error_messages=ErrMessage.char(_("Fields")))
class ConditionBranchSerializer(serializers.Serializer):
id = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Branch id")))
type = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Branch Type")))
condition = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Condition or|and")))
conditions = ConditionSerializer(many=True)
class ConditionNodeParamsSerializer(serializers.Serializer):
branch = ConditionBranchSerializer(many=True)
class IConditionNode(INode):
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return ConditionNodeParamsSerializer
type = 'condition-node'

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py
@date2024/6/11 15:35
@desc:
"""
from .base_condition_node import BaseConditionNode

View File

@ -0,0 +1,62 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file base_condition_node.py
@date2024/6/7 11:29
@desc:
"""
from typing import List
from application.flow.i_step_node import NodeResult
from application.flow.step_node.condition_node.compare import compare_handle_list
from application.flow.step_node.condition_node.i_condition_node import IConditionNode
class BaseConditionNode(IConditionNode):
def save_context(self, details, workflow_manage):
self.context['branch_id'] = details.get('branch_id')
self.context['branch_name'] = details.get('branch_name')
def execute(self, **kwargs) -> NodeResult:
branch_list = self.node_params_serializer.data['branch']
branch = self._execute(branch_list)
r = NodeResult({'branch_id': branch.get('id'), 'branch_name': branch.get('type')}, {})
return r
def _execute(self, branch_list: List):
for branch in branch_list:
if self.branch_assertion(branch):
return branch
def branch_assertion(self, branch):
condition_list = [self.assertion(row.get('field'), row.get('compare'), row.get('value')) for row in
branch.get('conditions')]
condition = branch.get('condition')
return all(condition_list) if condition == 'and' else any(condition_list)
def assertion(self, field_list: List[str], compare: str, value):
try:
value = self.workflow_manage.generate_prompt(value)
except Exception as e:
pass
field_value = None
try:
field_value = self.workflow_manage.get_reference_field(field_list[0], field_list[1:])
except Exception as e:
pass
for compare_handler in compare_handle_list:
if compare_handler.support(field_list[0], field_list[1:], field_value, compare, value):
return compare_handler.compare(field_value, compare, value)
def get_details(self, index: int, **kwargs):
return {
'name': self.node.properties.get('stepName'),
"index": index,
'run_time': self.context.get('run_time'),
'branch_id': self.context.get('branch_id'),
'branch_name': self.context.get('branch_name'),
'type': self.node.type,
'status': self.status,
'err_message': self.err_message
}

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py
@date2024/6/11 17:50
@desc:
"""
from .impl import *

View File

@ -0,0 +1,48 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file i_reply_node.py
@date2024/6/11 16:25
@desc:
"""
from typing import Type
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.exception.app_exception import AppApiException
from common.util.field_message import ErrMessage
from django.utils.translation import gettext_lazy as _
class ReplyNodeParamsSerializer(serializers.Serializer):
reply_type = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Response Type")))
fields = serializers.ListField(required=False, error_messages=ErrMessage.list(_("Reference Field")))
content = serializers.CharField(required=False, allow_blank=True, allow_null=True,
error_messages=ErrMessage.char(_("Direct answer content")))
is_result = serializers.BooleanField(required=False, error_messages=ErrMessage.boolean(_('Whether to return content')))
def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True)
if self.data.get('reply_type') == 'referencing':
if 'fields' not in self.data:
raise AppApiException(500, _("Reference field cannot be empty"))
if len(self.data.get('fields')) < 2:
raise AppApiException(500, _("Reference field error"))
else:
if 'content' not in self.data or self.data.get('content') is None:
raise AppApiException(500, _("Content cannot be empty"))
class IReplyNode(INode):
type = 'reply-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return ReplyNodeParamsSerializer
def _run(self):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)
def execute(self, reply_type, stream, fields=None, content=None, **kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file __init__.py
@date2024/6/11 17:49
@desc:
"""
from .base_reply_node import *

View File

@ -0,0 +1,45 @@
# coding=utf-8
"""
@project: maxkb
@Author
@file base_reply_node.py
@date2024/6/11 17:25
@desc:
"""
from typing import List
from application.flow.i_step_node import NodeResult
from application.flow.step_node.direct_reply_node.i_reply_node import IReplyNode
class BaseReplyNode(IReplyNode):
def save_context(self, details, workflow_manage):
self.context['answer'] = details.get('answer')
if self.node_params.get('is_result', False):
self.answer_text = details.get('answer')
def execute(self, reply_type, stream, fields=None, content=None, **kwargs) -> NodeResult:
if reply_type == 'referencing':
result = self.get_reference_content(fields)
else:
result = self.generate_reply_content(content)
return NodeResult({'answer': result}, {})
def generate_reply_content(self, prompt):
return self.workflow_manage.generate_prompt(prompt)
def get_reference_content(self, fields: List[str]):
return str(self.workflow_manage.get_reference_field(
fields[0],
fields[1:]))
def get_details(self, index: int, **kwargs):
return {
'name': self.node.properties.get('stepName'),
"index": index,
'run_time': self.context.get('run_time'),
'type': self.node.type,
'answer': self.context.get('answer'),
'status': self.status,
'err_message': self.err_message
}

View File

@ -0,0 +1 @@
from .impl import *

View File

@ -0,0 +1,28 @@
# coding=utf-8
from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.util.field_message import ErrMessage
class DocumentExtractNodeSerializer(serializers.Serializer):
document_list = serializers.ListField(required=False, error_messages=ErrMessage.list(_("document")))
class IDocumentExtractNode(INode):
type = 'document-extract-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return DocumentExtractNodeSerializer
def _run(self):
res = self.workflow_manage.get_reference_field(self.node_params_serializer.data.get('document_list')[0],
self.node_params_serializer.data.get('document_list')[1:])
return self.execute(document=res, **self.flow_params_serializer.data)
def execute(self, document, chat_id, **kwargs) -> NodeResult:
pass

View File

@ -0,0 +1 @@
from .base_document_extract_node import BaseDocumentExtractNode

View File

@ -0,0 +1,94 @@
# coding=utf-8
import io
import mimetypes
from django.core.files.uploadedfile import InMemoryUploadedFile
from django.db.models import QuerySet
from application.flow.i_step_node import NodeResult
from application.flow.step_node.document_extract_node.i_document_extract_node import IDocumentExtractNode
from dataset.models import File
from dataset.serializers.document_serializers import split_handles, parse_table_handle_list, FileBufferHandle
from dataset.serializers.file_serializers import FileSerializer
def bytes_to_uploaded_file(file_bytes, file_name="file.txt"):
content_type, _ = mimetypes.guess_type(file_name)
if content_type is None:
# 如果未能识别,设置为默认的二进制文件类型
content_type = "application/octet-stream"
# 创建一个内存中的字节流对象
file_stream = io.BytesIO(file_bytes)
# 获取文件大小
file_size = len(file_bytes)
# 创建 InMemoryUploadedFile 对象
uploaded_file = InMemoryUploadedFile(
file=file_stream,
field_name=None,
name=file_name,
content_type=content_type,
size=file_size,
charset=None,
)
return uploaded_file
splitter = '\n`-----------------------------------`\n'
class BaseDocumentExtractNode(IDocumentExtractNode):
def save_context(self, details, workflow_manage):
self.context['content'] = details.get('content')
def execute(self, document, chat_id, **kwargs):
get_buffer = FileBufferHandle().get_buffer
self.context['document_list'] = document
content = []
if document is None or not isinstance(document, list):
return NodeResult({'content': ''}, {})
application = self.workflow_manage.work_flow_post_handler.chat_info.application
# doc文件中的图片保存
def save_image(image_list):
for image in image_list:
meta = {
'debug': False if application.id else True,
'chat_id': chat_id,
'application_id': str(application.id) if application.id else None,
'file_id': str(image.id)
}
file = bytes_to_uploaded_file(image.image, image.image_name)
FileSerializer(data={'file': file, 'meta': meta}).upload()
for doc in document:
file = QuerySet(File).filter(id=doc['file_id']).first()
buffer = io.BytesIO(file.get_byte().tobytes())
buffer.name = doc['name'] # this is the important line
for split_handle in (parse_table_handle_list + split_handles):
if split_handle.support(buffer, get_buffer):
# 回到文件头
buffer.seek(0)
file_content = split_handle.get_content(buffer, save_image)
content.append('### ' + doc['name'] + '\n' + file_content)
break
return NodeResult({'content': splitter.join(content)}, {})
def get_details(self, index: int, **kwargs):
content = self.context.get('content', '').split(splitter)
# 不保存content全部内容因为content内容可能会很大
return {
'name': self.node.properties.get('stepName'),
"index": index,
'run_time': self.context.get('run_time'),
'type': self.node.type,
'content': [file_content[:500] for file_content in content],
'status': self.status,
'err_message': self.err_message,
'document_list': self.context.get('document_list')
}

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file __init__.py.py
@date2024/11/4 14:48
@desc:
"""
from .impl import *

View File

@ -0,0 +1,35 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file i_form_node.py
@date2024/11/4 14:48
@desc:
"""
from typing import Type
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.util.field_message import ErrMessage
from django.utils.translation import gettext_lazy as _
class FormNodeParamsSerializer(serializers.Serializer):
form_field_list = serializers.ListField(required=True, error_messages=ErrMessage.list(_("Form Configuration")))
form_content_format = serializers.CharField(required=True, error_messages=ErrMessage.char(_('Form output content')))
form_data = serializers.DictField(required=False, allow_null=True, error_messages=ErrMessage.dict(_("Form Data")))
class IFormNode(INode):
type = 'form-node'
view_type = 'single_view'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return FormNodeParamsSerializer
def _run(self):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)
def execute(self, form_field_list, form_content_format, form_data, **kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file __init__.py.py
@date2024/11/4 14:49
@desc:
"""
from .base_form_node import BaseFormNode

View File

@ -0,0 +1,107 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file base_form_node.py
@date2024/11/4 14:52
@desc:
"""
import json
import time
from typing import Dict, List
from langchain_core.prompts import PromptTemplate
from application.flow.common import Answer
from application.flow.i_step_node import NodeResult
from application.flow.step_node.form_node.i_form_node import IFormNode
def write_context(step_variable: Dict, global_variable: Dict, node, workflow):
if step_variable is not None:
for key in step_variable:
node.context[key] = step_variable[key]
if workflow.is_result(node, NodeResult(step_variable, global_variable)) and 'result' in step_variable:
result = step_variable['result']
yield result
node.answer_text = result
node.context['run_time'] = time.time() - node.context['start_time']
class BaseFormNode(IFormNode):
def save_context(self, details, workflow_manage):
form_data = details.get('form_data', None)
self.context['result'] = details.get('result')
self.context['form_content_format'] = details.get('form_content_format')
self.context['form_field_list'] = details.get('form_field_list')
self.context['run_time'] = details.get('run_time')
self.context['start_time'] = details.get('start_time')
self.context['form_data'] = form_data
self.context['is_submit'] = details.get('is_submit')
if self.node_params.get('is_result', False):
self.answer_text = details.get('result')
if form_data is not None:
for key in form_data:
self.context[key] = form_data[key]
def execute(self, form_field_list, form_content_format, form_data, **kwargs) -> NodeResult:
if form_data is not None:
self.context['is_submit'] = True
self.context['form_data'] = form_data
for key in form_data:
self.context[key] = form_data.get(key)
else:
self.context['is_submit'] = False
form_setting = {"form_field_list": form_field_list, "runtime_node_id": self.runtime_node_id,
"chat_record_id": self.flow_params_serializer.data.get("chat_record_id"),
"is_submit": self.context.get("is_submit", False)}
form = f'<form_rander>{json.dumps(form_setting, ensure_ascii=False)}</form_rander>'
context = self.workflow_manage.get_workflow_content()
form_content_format = self.workflow_manage.reset_prompt(form_content_format)
prompt_template = PromptTemplate.from_template(form_content_format, template_format='jinja2')
value = prompt_template.format(form=form, context=context)
return NodeResult(
{'result': value, 'form_field_list': form_field_list, 'form_content_format': form_content_format}, {},
_write_context=write_context)
def get_answer_list(self) -> List[Answer] | None:
form_content_format = self.context.get('form_content_format')
form_field_list = self.context.get('form_field_list')
form_setting = {"form_field_list": form_field_list, "runtime_node_id": self.runtime_node_id,
"chat_record_id": self.flow_params_serializer.data.get("chat_record_id"),
'form_data': self.context.get('form_data', {}),
"is_submit": self.context.get("is_submit", False)}
form = f'<form_rander>{json.dumps(form_setting, ensure_ascii=False)}</form_rander>'
context = self.workflow_manage.get_workflow_content()
form_content_format = self.workflow_manage.reset_prompt(form_content_format)
prompt_template = PromptTemplate.from_template(form_content_format, template_format='jinja2')
value = prompt_template.format(form=form, context=context)
return [Answer(value, self.view_type, self.runtime_node_id, self.workflow_params['chat_record_id'], None,
self.runtime_node_id, '')]
def get_details(self, index: int, **kwargs):
form_content_format = self.context.get('form_content_format')
form_field_list = self.context.get('form_field_list')
form_setting = {"form_field_list": form_field_list, "runtime_node_id": self.runtime_node_id,
"chat_record_id": self.flow_params_serializer.data.get("chat_record_id"),
'form_data': self.context.get('form_data', {}),
"is_submit": self.context.get("is_submit", False)}
form = f'<form_rander>{json.dumps(form_setting, ensure_ascii=False)}</form_rander>'
context = self.workflow_manage.get_workflow_content()
form_content_format = self.workflow_manage.reset_prompt(form_content_format)
prompt_template = PromptTemplate.from_template(form_content_format, template_format='jinja2')
value = prompt_template.format(form=form, context=context)
return {
'name': self.node.properties.get('stepName'),
"index": index,
"result": value,
"form_content_format": self.context.get('form_content_format'),
"form_field_list": self.context.get('form_field_list'),
'form_data': self.context.get('form_data'),
'start_time': self.context.get('start_time'),
'is_submit': self.context.get('is_submit'),
'run_time': self.context.get('run_time'),
'type': self.node.type,
'status': self.status,
'err_message': self.err_message
}

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file __init__.py
@date2024/8/8 17:45
@desc:
"""
from .impl import *

View File

@ -0,0 +1,48 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file i_function_lib_node.py
@date2024/8/8 16:21
@desc:
"""
from typing import Type
from django.db.models import QuerySet
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.field.common import ObjectField
from common.util.field_message import ErrMessage
from function_lib.models.function import FunctionLib
from django.utils.translation import gettext_lazy as _
class InputField(serializers.Serializer):
name = serializers.CharField(required=True, error_messages=ErrMessage.char(_('Variable Name')))
value = ObjectField(required=True, error_messages=ErrMessage.char(_("Variable Value")), model_type_list=[str, list])
class FunctionLibNodeParamsSerializer(serializers.Serializer):
function_lib_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_('Library ID')))
input_field_list = InputField(required=True, many=True)
is_result = serializers.BooleanField(required=False, error_messages=ErrMessage.boolean(_('Whether to return content')))
def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True)
f_lib = QuerySet(FunctionLib).filter(id=self.data.get('function_lib_id')).first()
if f_lib is None:
raise Exception(_('The function has been deleted'))
class IFunctionLibNode(INode):
type = 'function-lib-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return FunctionLibNodeParamsSerializer
def _run(self):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)
def execute(self, function_lib_id, input_field_list, **kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file __init__.py
@date2024/8/8 17:48
@desc:
"""
from .base_function_lib_node import BaseFunctionLibNodeNode

View File

@ -0,0 +1,150 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file base_function_lib_node.py
@date2024/8/8 17:49
@desc:
"""
import json
import time
from typing import Dict
from django.db.models import QuerySet
from django.utils.translation import gettext as _
from application.flow.i_step_node import NodeResult
from application.flow.step_node.function_lib_node.i_function_lib_node import IFunctionLibNode
from common.exception.app_exception import AppApiException
from common.util.function_code import FunctionExecutor
from common.util.rsa_util import rsa_long_decrypt
from function_lib.models.function import FunctionLib
from smartdoc.const import CONFIG
function_executor = FunctionExecutor(CONFIG.get('SANDBOX'))
def write_context(step_variable: Dict, global_variable: Dict, node, workflow):
if step_variable is not None:
for key in step_variable:
node.context[key] = step_variable[key]
if workflow.is_result(node, NodeResult(step_variable, global_variable)) and 'result' in step_variable:
result = str(step_variable['result']) + '\n'
yield result
node.answer_text = result
node.context['run_time'] = time.time() - node.context['start_time']
def get_field_value(debug_field_list, name, is_required):
result = [field for field in debug_field_list if field.get('name') == name]
if len(result) > 0:
return result[-1]['value']
if is_required:
raise AppApiException(500, _('Field: {name} No value set').format(name=name))
return None
def valid_reference_value(_type, value, name):
if _type == 'int':
instance_type = int | float
elif _type == 'float':
instance_type = float | int
elif _type == 'dict':
instance_type = dict
elif _type == 'array':
instance_type = list
elif _type == 'string':
instance_type = str
else:
raise Exception(_('Field: {name} Type: {_type} Value: {value} Unsupported types').format(name=name,
_type=_type))
if not isinstance(value, instance_type):
raise Exception(
_('Field: {name} Type: {_type} Value: {value} Type error').format(name=name, _type=_type,
value=value))
def convert_value(name: str, value, _type, is_required, source, node):
if not is_required and (value is None or (isinstance(value, str) and len(value) == 0)):
return None
if not is_required and source == 'reference' and (value is None or len(value) == 0):
return None
if source == 'reference':
value = node.workflow_manage.get_reference_field(
value[0],
value[1:])
valid_reference_value(_type, value, name)
if _type == 'int':
return int(value)
if _type == 'float':
return float(value)
return value
try:
if _type == 'int':
return int(value)
if _type == 'float':
return float(value)
if _type == 'dict':
v = json.loads(value)
if isinstance(v, dict):
return v
raise Exception(_('type error'))
if _type == 'array':
v = json.loads(value)
if isinstance(v, list):
return v
raise Exception(_('type error'))
return value
except Exception as e:
raise Exception(
_('Field: {name} Type: {_type} Value: {value} Type error').format(name=name, _type=_type,
value=value))
def valid_function(function_lib, user_id):
if function_lib is None:
raise Exception(_('Function does not exist'))
if function_lib.permission_type == 'PRIVATE' and str(function_lib.user_id) != str(user_id):
raise Exception(_('No permission to use this function {name}').format(name=function_lib.name))
if not function_lib.is_active:
raise Exception(_('Function {name} is unavailable').format(name=function_lib.name))
class BaseFunctionLibNodeNode(IFunctionLibNode):
def save_context(self, details, workflow_manage):
self.context['result'] = details.get('result')
if self.node_params.get('is_result'):
self.answer_text = str(details.get('result'))
def execute(self, function_lib_id, input_field_list, **kwargs) -> NodeResult:
function_lib = QuerySet(FunctionLib).filter(id=function_lib_id).first()
valid_function(function_lib, self.flow_params_serializer.data.get('user_id'))
params = {field.get('name'): convert_value(field.get('name'), field.get('value'), field.get('type'),
field.get('is_required'),
field.get('source'), self)
for field in
[{'value': get_field_value(input_field_list, field.get('name'), field.get('is_required'),
), **field}
for field in
function_lib.input_field_list]}
self.context['params'] = params
# 合并初始化参数
if function_lib.init_params is not None:
all_params = json.loads(rsa_long_decrypt(function_lib.init_params)) | params
else:
all_params = params
result = function_executor.exec_code(function_lib.code, all_params)
return NodeResult({'result': result}, {}, _write_context=write_context)
def get_details(self, index: int, **kwargs):
return {
'name': self.node.properties.get('stepName'),
"index": index,
"result": self.context.get('result'),
"params": self.context.get('params'),
'run_time': self.context.get('run_time'),
'type': self.node.type,
'status': self.status,
'err_message': self.err_message
}

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file __init__.py.py
@date2024/8/13 10:43
@desc:
"""
from .impl import *

View File

@ -0,0 +1,63 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file i_function_lib_node.py
@date2024/8/8 16:21
@desc:
"""
import re
from typing import Type
from django.core import validators
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.exception.app_exception import AppApiException
from common.field.common import ObjectField
from common.util.field_message import ErrMessage
from django.utils.translation import gettext_lazy as _
from rest_framework.utils.formatting import lazy_format
class InputField(serializers.Serializer):
name = serializers.CharField(required=True, error_messages=ErrMessage.char(_('Variable Name')))
is_required = serializers.BooleanField(required=True, error_messages=ErrMessage.boolean(_("Is this field required")))
type = serializers.CharField(required=True, error_messages=ErrMessage.char(_("type")), validators=[
validators.RegexValidator(regex=re.compile("^string|int|dict|array|float$"),
message=_("The field only supports string|int|dict|array|float"), code=500)
])
source = serializers.CharField(required=True, error_messages=ErrMessage.char(_("source")), validators=[
validators.RegexValidator(regex=re.compile("^custom|reference$"),
message=_("The field only supports custom|reference"), code=500)
])
value = ObjectField(required=True, error_messages=ErrMessage.char(_("Variable Value")), model_type_list=[str, list])
def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True)
is_required = self.data.get('is_required')
if is_required and self.data.get('value') is None:
message = lazy_format(_('{field}, this field is required.'), field=self.data.get("name"))
raise AppApiException(500, message)
class FunctionNodeParamsSerializer(serializers.Serializer):
input_field_list = InputField(required=True, many=True)
code = serializers.CharField(required=True, error_messages=ErrMessage.char(_("function")))
is_result = serializers.BooleanField(required=False, error_messages=ErrMessage.boolean(_('Whether to return content')))
def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True)
class IFunctionNode(INode):
type = 'function-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return FunctionNodeParamsSerializer
def _run(self):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)
def execute(self, input_field_list, code, **kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,9 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file __init__.py.py
@date2024/8/13 11:19
@desc:
"""
from .base_function_node import BaseFunctionNodeNode

View File

@ -0,0 +1,108 @@
# coding=utf-8
"""
@project: MaxKB
@Author
@file base_function_lib_node.py
@date2024/8/8 17:49
@desc:
"""
import json
import time
from typing import Dict
from application.flow.i_step_node import NodeResult
from application.flow.step_node.function_node.i_function_node import IFunctionNode
from common.exception.app_exception import AppApiException
from common.util.function_code import FunctionExecutor
from smartdoc.const import CONFIG
function_executor = FunctionExecutor(CONFIG.get('SANDBOX'))
def write_context(step_variable: Dict, global_variable: Dict, node, workflow):
if step_variable is not None:
for key in step_variable:
node.context[key] = step_variable[key]
if workflow.is_result(node, NodeResult(step_variable, global_variable)) and 'result' in step_variable:
result = str(step_variable['result']) + '\n'
yield result
node.answer_text = result
node.context['run_time'] = time.time() - node.context['start_time']
def valid_reference_value(_type, value, name):
if _type == 'int':
instance_type = int | float
elif _type == 'float':
instance_type = float | int
elif _type == 'dict':
instance_type = dict
elif _type == 'array':
instance_type = list
elif _type == 'string':
instance_type = str
else:
raise Exception(500, f'字段:{name}类型:{_type} 不支持的类型')
if not isinstance(value, instance_type):
raise Exception(f'字段:{name}类型:{_type}值:{value}类型错误')
def convert_value(name: str, value, _type, is_required, source, node):
if not is_required and (value is None or (isinstance(value, str) and len(value) == 0)):
return None
if source == 'reference':
value = node.workflow_manage.get_reference_field(
value[0],
value[1:])
valid_reference_value(_type, value, name)
if _type == 'int':
return int(value)
if _type == 'float':
return float(value)
return value
try:
if _type == 'int':
return int(value)
if _type == 'float':
return float(value)
if _type == 'dict':
v = json.loads(value)
if isinstance(v, dict):
return v
raise Exception("类型错误")
if _type == 'array':
v = json.loads(value)
if isinstance(v, list):
return v
raise Exception("类型错误")
return value
except Exception as e:
raise Exception(f'字段:{name}类型:{_type}值:{value}类型错误')
class BaseFunctionNodeNode(IFunctionNode):
def save_context(self, details, workflow_manage):
self.context['result'] = details.get('result')
if self.node_params.get('is_result', False):
self.answer_text = str(details.get('result'))
def execute(self, input_field_list, code, **kwargs) -> NodeResult:
params = {field.get('name'): convert_value(field.get('name'), field.get('value'), field.get('type'),
field.get('is_required'), field.get('source'), self)
for field in input_field_list}
result = function_executor.exec_code(code, params)
self.context['params'] = params
return NodeResult({'result': result}, {}, _write_context=write_context)
def get_details(self, index: int, **kwargs):
return {
'name': self.node.properties.get('stepName'),
"index": index,
"result": self.context.get('result'),
"params": self.context.get('params'),
'run_time': self.context.get('run_time'),
'type': self.node.type,
'status': self.status,
'err_message': self.err_message
}

View File

@ -0,0 +1,3 @@
# coding=utf-8
from .impl import *

View File

@ -0,0 +1,45 @@
# coding=utf-8
from typing import Type
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.util.field_message import ErrMessage
from django.utils.translation import gettext_lazy as _
class ImageGenerateNodeSerializer(serializers.Serializer):
model_id = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Model id")))
prompt = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Prompt word (positive)")))
negative_prompt = serializers.CharField(required=False, error_messages=ErrMessage.char(_("Prompt word (negative)")),
allow_null=True, allow_blank=True, )
# 多轮对话数量
dialogue_number = serializers.IntegerField(required=False, default=0,
error_messages=ErrMessage.integer(_("Number of multi-round conversations")))
dialogue_type = serializers.CharField(required=False, default='NODE',
error_messages=ErrMessage.char(_("Conversation storage type")))
is_result = serializers.BooleanField(required=False, error_messages=ErrMessage.boolean(_('Whether to return content')))
model_params_setting = serializers.JSONField(required=False, default=dict,
error_messages=ErrMessage.json(_("Model parameter settings")))
class IImageGenerateNode(INode):
type = 'image-generate-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return ImageGenerateNodeSerializer
def _run(self):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)
def execute(self, model_id, prompt, negative_prompt, dialogue_number, dialogue_type, history_chat_record, chat_id,
model_params_setting,
chat_record_id,
**kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,3 @@
# coding=utf-8
from .base_image_generate_node import BaseImageGenerateNode

View File

@ -0,0 +1,122 @@
# coding=utf-8
from functools import reduce
from typing import List
import requests
from langchain_core.messages import BaseMessage, HumanMessage, AIMessage
from application.flow.i_step_node import NodeResult
from application.flow.step_node.image_generate_step_node.i_image_generate_node import IImageGenerateNode
from common.util.common import bytes_to_uploaded_file
from dataset.serializers.file_serializers import FileSerializer
from setting.models_provider.tools import get_model_instance_by_model_user_id
class BaseImageGenerateNode(IImageGenerateNode):
def save_context(self, details, workflow_manage):
self.context['answer'] = details.get('answer')
self.context['question'] = details.get('question')
if self.node_params.get('is_result', False):
self.answer_text = details.get('answer')
def execute(self, model_id, prompt, negative_prompt, dialogue_number, dialogue_type, history_chat_record, chat_id,
model_params_setting,
chat_record_id,
**kwargs) -> NodeResult:
print(model_params_setting)
application = self.workflow_manage.work_flow_post_handler.chat_info.application
tti_model = get_model_instance_by_model_user_id(model_id, self.flow_params_serializer.data.get('user_id'),
**model_params_setting)
history_message = self.get_history_message(history_chat_record, dialogue_number)
self.context['history_message'] = history_message
question = self.generate_prompt_question(prompt)
self.context['question'] = question
message_list = self.generate_message_list(question, history_message)
self.context['message_list'] = message_list
self.context['dialogue_type'] = dialogue_type
print(message_list)
image_urls = tti_model.generate_image(question, negative_prompt)
# 保存图片
file_urls = []
for image_url in image_urls:
file_name = 'generated_image.png'
file = bytes_to_uploaded_file(requests.get(image_url).content, file_name)
meta = {
'debug': False if application.id else True,
'chat_id': chat_id,
'application_id': str(application.id) if application.id else None,
}
file_url = FileSerializer(data={'file': file, 'meta': meta}).upload()
file_urls.append(file_url)
self.context['image_list'] = [{'file_id': path.split('/')[-1], 'url': path} for path in file_urls]
answer = ' '.join([f"![Image]({path})" for path in file_urls])
return NodeResult({'answer': answer, 'chat_model': tti_model, 'message_list': message_list,
'image': [{'file_id': path.split('/')[-1], 'url': path} for path in file_urls],
'history_message': history_message, 'question': question}, {})
def generate_history_ai_message(self, chat_record):
for val in chat_record.details.values():
if self.node.id == val['node_id'] and 'image_list' in val:
if val['dialogue_type'] == 'WORKFLOW':
return chat_record.get_ai_message()
image_list = val['image_list']
return AIMessage(content=[
*[{'type': 'image_url', 'image_url': {'url': f'{file_url}'}} for file_url in image_list]
])
return chat_record.get_ai_message()
def get_history_message(self, history_chat_record, dialogue_number):
start_index = len(history_chat_record) - dialogue_number
history_message = reduce(lambda x, y: [*x, *y], [
[self.generate_history_human_message(history_chat_record[index]),
self.generate_history_ai_message(history_chat_record[index])]
for index in
range(start_index if start_index > 0 else 0, len(history_chat_record))], [])
return history_message
def generate_history_human_message(self, chat_record):
for data in chat_record.details.values():
if self.node.id == data['node_id'] and 'image_list' in data:
image_list = data['image_list']
if len(image_list) == 0 or data['dialogue_type'] == 'WORKFLOW':
return HumanMessage(content=chat_record.problem_text)
return HumanMessage(content=data['question'])
return HumanMessage(content=chat_record.problem_text)
def generate_prompt_question(self, prompt):
return self.workflow_manage.generate_prompt(prompt)
def generate_message_list(self, question: str, history_message):
return [
*history_message,
question
]
@staticmethod
def reset_message_list(message_list: List[BaseMessage], answer_text):
result = [{'role': 'user' if isinstance(message, HumanMessage) else 'ai', 'content': message.content} for
message
in
message_list]
result.append({'role': 'ai', 'content': answer_text})
return result
def get_details(self, index: int, **kwargs):
return {
'name': self.node.properties.get('stepName'),
"index": index,
'run_time': self.context.get('run_time'),
'history_message': [{'content': message.content, 'role': message.type} for message in
(self.context.get('history_message') if self.context.get(
'history_message') is not None else [])],
'question': self.context.get('question'),
'answer': self.context.get('answer'),
'type': self.node.type,
'message_tokens': self.context.get('message_tokens'),
'answer_tokens': self.context.get('answer_tokens'),
'status': self.status,
'err_message': self.err_message,
'image_list': self.context.get('image_list'),
'dialogue_type': self.context.get('dialogue_type')
}

View File

@ -0,0 +1,3 @@
# coding=utf-8
from .impl import *

View File

@ -0,0 +1,46 @@
# coding=utf-8
from typing import Type
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.util.field_message import ErrMessage
from django.utils.translation import gettext_lazy as _
class ImageUnderstandNodeSerializer(serializers.Serializer):
model_id = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Model id")))
system = serializers.CharField(required=False, allow_blank=True, allow_null=True,
error_messages=ErrMessage.char(_("Role Setting")))
prompt = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Prompt word")))
# 多轮对话数量
dialogue_number = serializers.IntegerField(required=True, error_messages=ErrMessage.integer(_("Number of multi-round conversations")))
dialogue_type = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Conversation storage type")))
is_result = serializers.BooleanField(required=False, error_messages=ErrMessage.boolean(_('Whether to return content')))
image_list = serializers.ListField(required=False, error_messages=ErrMessage.list(_("picture")))
model_params_setting = serializers.JSONField(required=False, default=dict,
error_messages=ErrMessage.json(_("Model parameter settings")))
class IImageUnderstandNode(INode):
type = 'image-understand-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return ImageUnderstandNodeSerializer
def _run(self):
res = self.workflow_manage.get_reference_field(self.node_params_serializer.data.get('image_list')[0],
self.node_params_serializer.data.get('image_list')[1:])
return self.execute(image=res, **self.node_params_serializer.data, **self.flow_params_serializer.data)
def execute(self, model_id, system, prompt, dialogue_number, dialogue_type, history_chat_record, stream, chat_id,
model_params_setting,
chat_record_id,
image,
**kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,3 @@
# coding=utf-8
from .base_image_understand_node import BaseImageUnderstandNode

View File

@ -0,0 +1,224 @@
# coding=utf-8
import base64
import os
import time
from functools import reduce
from typing import List, Dict
from django.db.models import QuerySet
from langchain_core.messages import BaseMessage, HumanMessage, SystemMessage, AIMessage
from application.flow.i_step_node import NodeResult, INode
from application.flow.step_node.image_understand_step_node.i_image_understand_node import IImageUnderstandNode
from dataset.models import File
from setting.models_provider.tools import get_model_instance_by_model_user_id
from imghdr import what
def _write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow, answer: str):
chat_model = node_variable.get('chat_model')
message_tokens = node_variable['usage_metadata']['output_tokens'] if 'usage_metadata' in node_variable else 0
answer_tokens = chat_model.get_num_tokens(answer)
node.context['message_tokens'] = message_tokens
node.context['answer_tokens'] = answer_tokens
node.context['answer'] = answer
node.context['history_message'] = node_variable['history_message']
node.context['question'] = node_variable['question']
node.context['run_time'] = time.time() - node.context['start_time']
if workflow.is_result(node, NodeResult(node_variable, workflow_variable)):
node.answer_text = answer
def write_context_stream(node_variable: Dict, workflow_variable: Dict, node: INode, workflow):
"""
写入上下文数据 (流式)
@param node_variable: 节点数据
@param workflow_variable: 全局数据
@param node: 节点
@param workflow: 工作流管理器
"""
response = node_variable.get('result')
answer = ''
for chunk in response:
answer += chunk.content
yield chunk.content
_write_context(node_variable, workflow_variable, node, workflow, answer)
def write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow):
"""
写入上下文数据
@param node_variable: 节点数据
@param workflow_variable: 全局数据
@param node: 节点实例对象
@param workflow: 工作流管理器
"""
response = node_variable.get('result')
answer = response.content
_write_context(node_variable, workflow_variable, node, workflow, answer)
def file_id_to_base64(file_id: str):
file = QuerySet(File).filter(id=file_id).first()
file_bytes = file.get_byte()
base64_image = base64.b64encode(file_bytes).decode("utf-8")
return [base64_image, what(None, file_bytes.tobytes())]
class BaseImageUnderstandNode(IImageUnderstandNode):
def save_context(self, details, workflow_manage):
self.context['answer'] = details.get('answer')
self.context['question'] = details.get('question')
if self.node_params.get('is_result', False):
self.answer_text = details.get('answer')
def execute(self, model_id, system, prompt, dialogue_number, dialogue_type, history_chat_record, stream, chat_id,
model_params_setting,
chat_record_id,
image,
**kwargs) -> NodeResult:
# 处理不正确的参数
if image is None or not isinstance(image, list):
image = []
print(model_params_setting)
image_model = get_model_instance_by_model_user_id(model_id, self.flow_params_serializer.data.get('user_id'), **model_params_setting)
# 执行详情中的历史消息不需要图片内容
history_message = self.get_history_message_for_details(history_chat_record, dialogue_number)
self.context['history_message'] = history_message
question = self.generate_prompt_question(prompt)
self.context['question'] = question.content
# 生成消息列表, 真实的history_message
message_list = self.generate_message_list(image_model, system, prompt,
self.get_history_message(history_chat_record, dialogue_number), image)
self.context['message_list'] = message_list
self.context['image_list'] = image
self.context['dialogue_type'] = dialogue_type
if stream:
r = image_model.stream(message_list)
return NodeResult({'result': r, 'chat_model': image_model, 'message_list': message_list,
'history_message': history_message, 'question': question.content}, {},
_write_context=write_context_stream)
else:
r = image_model.invoke(message_list)
return NodeResult({'result': r, 'chat_model': image_model, 'message_list': message_list,
'history_message': history_message, 'question': question.content}, {},
_write_context=write_context)
def get_history_message_for_details(self, history_chat_record, dialogue_number):
start_index = len(history_chat_record) - dialogue_number
history_message = reduce(lambda x, y: [*x, *y], [
[self.generate_history_human_message_for_details(history_chat_record[index]),
self.generate_history_ai_message(history_chat_record[index])]
for index in
range(start_index if start_index > 0 else 0, len(history_chat_record))], [])
return history_message
def generate_history_ai_message(self, chat_record):
for val in chat_record.details.values():
if self.node.id == val['node_id'] and 'image_list' in val:
if val['dialogue_type'] == 'WORKFLOW':
return chat_record.get_ai_message()
return AIMessage(content=val['answer'])
return chat_record.get_ai_message()
def generate_history_human_message_for_details(self, chat_record):
for data in chat_record.details.values():
if self.node.id == data['node_id'] and 'image_list' in data:
image_list = data['image_list']
if len(image_list) == 0 or data['dialogue_type'] == 'WORKFLOW':
return HumanMessage(content=chat_record.problem_text)
file_id_list = [image.get('file_id') for image in image_list]
return HumanMessage(content=[
{'type': 'text', 'text': data['question']},
*[{'type': 'image_url', 'image_url': {'url': f'/api/file/{file_id}'}} for file_id in file_id_list]
])
return HumanMessage(content=chat_record.problem_text)
def get_history_message(self, history_chat_record, dialogue_number):
start_index = len(history_chat_record) - dialogue_number
history_message = reduce(lambda x, y: [*x, *y], [
[self.generate_history_human_message(history_chat_record[index]),
self.generate_history_ai_message(history_chat_record[index])]
for index in
range(start_index if start_index > 0 else 0, len(history_chat_record))], [])
return history_message
def generate_history_human_message(self, chat_record):
for data in chat_record.details.values():
if self.node.id == data['node_id'] and 'image_list' in data:
image_list = data['image_list']
if len(image_list) == 0 or data['dialogue_type'] == 'WORKFLOW':
return HumanMessage(content=chat_record.problem_text)
image_base64_list = [file_id_to_base64(image.get('file_id')) for image in image_list]
return HumanMessage(
content=[
{'type': 'text', 'text': data['question']},
*[{'type': 'image_url', 'image_url': {'url': f'data:image/{base64_image[1]};base64,{base64_image[0]}'}} for
base64_image in image_base64_list]
])
return HumanMessage(content=chat_record.problem_text)
def generate_prompt_question(self, prompt):
return HumanMessage(self.workflow_manage.generate_prompt(prompt))
def generate_message_list(self, image_model, system: str, prompt: str, history_message, image):
if image is not None and len(image) > 0:
# 处理多张图片
images = []
for img in image:
file_id = img['file_id']
file = QuerySet(File).filter(id=file_id).first()
image_bytes = file.get_byte()
base64_image = base64.b64encode(image_bytes).decode("utf-8")
image_format = what(None, image_bytes.tobytes())
images.append({'type': 'image_url', 'image_url': {'url': f'data:image/{image_format};base64,{base64_image}'}})
messages = [HumanMessage(
content=[
{'type': 'text', 'text': self.workflow_manage.generate_prompt(prompt)},
*images
])]
else:
messages = [HumanMessage(self.workflow_manage.generate_prompt(prompt))]
if system is not None and len(system) > 0:
return [
SystemMessage(self.workflow_manage.generate_prompt(system)),
*history_message,
*messages
]
else:
return [
*history_message,
*messages
]
@staticmethod
def reset_message_list(message_list: List[BaseMessage], answer_text):
result = [{'role': 'user' if isinstance(message, HumanMessage) else 'ai', 'content': message.content} for
message
in
message_list]
result.append({'role': 'ai', 'content': answer_text})
return result
def get_details(self, index: int, **kwargs):
return {
'name': self.node.properties.get('stepName'),
"index": index,
'run_time': self.context.get('run_time'),
'system': self.node_params.get('system'),
'history_message': [{'content': message.content, 'role': message.type} for message in
(self.context.get('history_message') if self.context.get(
'history_message') is not None else [])],
'question': self.context.get('question'),
'answer': self.context.get('answer'),
'type': self.node.type,
'message_tokens': self.context.get('message_tokens'),
'answer_tokens': self.context.get('answer_tokens'),
'status': self.status,
'err_message': self.err_message,
'image_list': self.context.get('image_list'),
'dialogue_type': self.context.get('dialogue_type')
}

View File

@ -0,0 +1,3 @@
# coding=utf-8
from .impl import *

View File

@ -0,0 +1,35 @@
# coding=utf-8
from typing import Type
from rest_framework import serializers
from application.flow.i_step_node import INode, NodeResult
from common.util.field_message import ErrMessage
from django.utils.translation import gettext_lazy as _
class McpNodeSerializer(serializers.Serializer):
mcp_servers = serializers.JSONField(required=True,
error_messages=ErrMessage.char(_("Mcp servers")))
mcp_server = serializers.CharField(required=True,
error_messages=ErrMessage.char(_("Mcp server")))
mcp_tool = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Mcp tool")))
tool_params = serializers.DictField(required=True,
error_messages=ErrMessage.char(_("Tool parameters")))
class IMcpNode(INode):
type = 'mcp-node'
def get_node_params_serializer_class(self) -> Type[serializers.Serializer]:
return McpNodeSerializer
def _run(self):
return self.execute(**self.node_params_serializer.data, **self.flow_params_serializer.data)
def execute(self, mcp_servers, mcp_server, mcp_tool, tool_params, **kwargs) -> NodeResult:
pass

View File

@ -0,0 +1,3 @@
# coding=utf-8
from .base_mcp_node import BaseMcpNode

View File

@ -0,0 +1,61 @@
# coding=utf-8
import asyncio
import json
from typing import List
from langchain_mcp_adapters.client import MultiServerMCPClient
from application.flow.i_step_node import NodeResult
from application.flow.step_node.mcp_node.i_mcp_node import IMcpNode
class BaseMcpNode(IMcpNode):
def save_context(self, details, workflow_manage):
self.context['result'] = details.get('result')
self.context['tool_params'] = details.get('tool_params')
self.context['mcp_tool'] = details.get('mcp_tool')
if self.node_params.get('is_result', False):
self.answer_text = details.get('result')
def execute(self, mcp_servers, mcp_server, mcp_tool, tool_params, **kwargs) -> NodeResult:
servers = json.loads(mcp_servers)
params = json.loads(json.dumps(tool_params))
params = self.handle_variables(params)
async def call_tool(s, session, t, a):
async with MultiServerMCPClient(s) as client:
s = await client.sessions[session].call_tool(t, a)
return s
res = asyncio.run(call_tool(servers, mcp_server, mcp_tool, params))
return NodeResult(
{'result': [content.text for content in res.content], 'tool_params': params, 'mcp_tool': mcp_tool}, {})
def handle_variables(self, tool_params):
# 处理参数中的变量
for k, v in tool_params.items():
if type(v) == str:
tool_params[k] = self.workflow_manage.generate_prompt(tool_params[k])
if type(v) == dict:
self.handle_variables(v)
if (type(v) == list) and (type(v[0]) == str):
tool_params[k] = self.get_reference_content(v)
return tool_params
def get_reference_content(self, fields: List[str]):
return str(self.workflow_manage.get_reference_field(
fields[0],
fields[1:]))
def get_details(self, index: int, **kwargs):
return {
'name': self.node.properties.get('stepName'),
"index": index,
'run_time': self.context.get('run_time'),
'status': self.status,
'err_message': self.err_message,
'type': self.node.type,
'mcp_tool': self.context.get('mcp_tool'),
'tool_params': self.context.get('tool_params'),
'result': self.context.get('result'),
}

Some files were not shown because too many files have changed in this diff Show More