Commit Graph

2985 Commits

Author SHA1 Message Date
wwq
b4b9974064 refactor(api_key): change rate limit handling to auto-cap at tenant limit
- Replace exception throwing with automatic capping when rate limit exceeds tenant plan limit, improving user experience.
2026-04-20 18:45:17 +08:00
wwq
817aa78d03 fix(rate_limit): differentiate between tenant plan and API Key QPS limit errors
- Add logic to detect tenant plan QPS limits and return a specific error message when triggered.
- Simplify boolean check in model activation quota validation.
2026-04-20 18:34:18 +08:00
wwq
d59990d326 fix(rate_limit): differentiate between tenant plan and API Key QPS limit errors
- Add logic to detect tenant plan QPS limits and return a specific error message when triggered.
- Simplify boolean check in model activation quota validation.
2026-04-20 18:25:39 +08:00
wwq
3227c25b07 fix(quota): fix tenant ID retrieval and QPS counting logic
- Fix issue where tenant ID lookup from shared records failed to query the workspace correctly.
- Switch QPS counting from sliding window to simple counter to improve performance and simplify logic.
- Remove unnecessary `time` module import.
2026-04-20 18:10:28 +08:00
wwq
08b5c7bc8a perf(限流服务): 优化Redis查询以减少命令数量
使用zcount替代zremrangebyscore和zcard组合查询,减少一次Redis操作
2026-04-20 17:46:05 +08:00
wwq
b03300c804 refactor(rate_limit): refactor API Key rate limiting and remove tenant-level QPS check
- Streamline rate limit check flow by removing redundant tenant-level QPS checks.
- Restrict checks to API Key QPS and plan degradation protection only.
- Update constant naming and error message handling for consistency.
2026-04-20 17:18:05 +08:00
wwq
c448cf0660 refactor(rate-limit): change rate limiting granularity from tenant to API Key
- Refactor rate limiting mechanism to limit per API Key instead of per tenant (workspace).
- Update error code logic and Redis key naming conventions.
- Adjust quota usage statistics to display the QPS of the API Key closest to its limit.
2026-04-20 16:13:30 +08:00
wwq
48f3d9b105 feat(quota): refactor quota management and rate limiting services
- Add `API_KEY_RATE_LIMIT_EXCEEDED` error code.
- Refactor `QuotaExceededError` to support resource type localization.
- Optimize rate limiting service by implementing the sliding window algorithm.
- Add rate limit validation for tenant plans.
- Unify quota check decorator to support both synchronous and asynchronous operations.
- Enhance quota usage statistics endpoints.
2026-04-20 15:10:12 +08:00
山程漫悟
81d58b001f Merge pull request #931 from wanxunyang/develop-wxy
**fix(tenant_subscription): correct quota field name from quota to quotas**
2026-04-17 18:45:44 +08:00
wwq
99bc84a9f2 feat(workflow): 增强工作流节点解析功能
添加工作流节点解析方法,支持工具和知识库ID的匹配与验证
改进知识库和工具解析逻辑,优先匹配ID并处理共享资源
2026-04-17 18:34:15 +08:00
山程漫悟
37dbe0f95b Merge pull request #933 from SuanmoSuanyangTechnology/feature/agent-tool_xjn
feat(workflow)
2026-04-17 18:23:23 +08:00
Timebomb2018
d4a1904b19 refactor(workflow): rename condition variables to expression in if-else node logic 2026-04-17 18:02:48 +08:00
Timebomb2018
fb93c509f4 refactor(workflow): simplify if-else node condition structure by removing nested condition groups
The changes remove the `ConditionGroup` abstraction and flatten condition expressions directly under `ConditionBranchConfig.expressions`. This simplifies the data model and evaluation logic, eliminating redundant grouping layers while preserving all functionality. The migration logic and group-level operators are removed as they are no longer needed.

BREAKING CHANGE: `ConditionBranchConfig.expressions` now expects a flat list of `ConditionDetail` instead of `ConditionGroup`; existing configurations must be updated to use direct condition lists.
2026-04-17 17:46:49 +08:00
Timebomb2018
62c721bdf6 feat(workflow): support array[file] field-level conditions in if-else nodes
Added support for evaluating conditions on individual fields of file objects within array[file] variables. Extended variable pool to extract fields from array elements, introduced new condition models (SubVariableConditionItem, SubVariableCondition, ConditionGroup), and added ArrayFileContainsOperator to handle contains/not_contains logic with nested sub-conditions. Includes backward compatibility migration for legacy flat expressions.
2026-04-17 17:27:51 +08:00
yingzhao
4cbb0cee2f Merge pull request #930 from SuanmoSuanyangTechnology/feature/ui_zy
feat(web): icon update
2026-04-17 14:56:38 +08:00
zhaoying
8c586935a8 feat(web): icon update 2026-04-17 14:55:25 +08:00
wwq
d5272af76f fix(tenant_subscription): 修正配额字段名称从quota改为quotas 2026-04-17 14:41:44 +08:00
yingzhao
cf8912e929 Merge pull request #929 from SuanmoSuanyangTechnology/fix/web_cache_zy
fix(web): After a new release, old dynamic chunk files are deleted; f…
2026-04-17 14:23:49 +08:00
山程漫悟
327c1904b1 Merge pull request #928 from SuanmoSuanyangTechnology/feature/agent-tool_xjn
fix(llm)
2026-04-17 14:23:16 +08:00
zhaoying
58c13aaeb4 fix(web): After a new release, old dynamic chunk files are deleted; force a page reload on preload error 2026-04-17 14:21:36 +08:00
Timebomb2018
377ddd2b9b fix(llm): unify JSON output handling across providers and fix tool+json_output compatibility
- Remove redundant `response_format` injection for VOLCANO provider since it's unsupported; rely on system prompt injection instead
- Extend system prompt JSON injection logic to cover VOLCANO and tool-enabled cases universally
- Simplify model parameter construction by removing redundant `params["model_kwargs"] = model_kwargs` assignments
- Refactor `CompatibleChatOpenAI._get_request_payload` to strip `response_format` when tools are present, avoiding strict validation errors in langchain_openai
- Fix timestamp calculation order in `datetime_tool.py` to avoid integer truncation before multiplication
2026-04-17 14:19:40 +08:00
yingzhao
52f7ea7456 Merge pull request #927 from SuanmoSuanyangTechnology/feature/model_json_zy
feat(web): agent support reset model config
2026-04-17 13:46:41 +08:00
zhaoying
b02baedd2c feat(web): agent support reset model config 2026-04-17 13:44:07 +08:00
yingzhao
f3c3b6255e Merge pull request #926 from SuanmoSuanyangTechnology/feature/package_zy
feat(web): package menu
2026-04-17 13:37:04 +08:00
zhaoying
b659e2a6e1 feat(web): package tabs 2026-04-17 13:36:19 +08:00
zhaoying
e15e32cc7b feat(web): package menu 2026-04-17 12:20:15 +08:00
yingzhao
04d20dc094 Merge pull request #925 from SuanmoSuanyangTechnology/feature/ui_zy
Feature/UI zy
2026-04-17 11:59:37 +08:00
zhaoying
b8123fc84c fix(web): ui 2026-04-17 11:58:24 +08:00
zhaoying
5a17b7fd0d feat(web): variable select support key operate 2026-04-17 11:51:21 +08:00
山程漫悟
e3d0602850 Merge pull request #920 from wanxunyang/feat/quota-check-decorator
feat(tenant): add public subscription plan list endpoint and enhance plan information
2026-04-17 11:47:34 +08:00
wxy
696b2d2417 fix(knowledge_service): 修正知识创建时模型类型过滤条件
移除IMAGE类型过滤,仅保留CHAT类型,确保只筛选出支持视觉能力的聊天模型
2026-04-17 11:38:45 +08:00
wxy
a5613314b8 refactor(agent): 将重置模型参数接口改为获取默认参数
移除不再使用的重置模型参数功能,将POST接口改为GET接口以获取默认参数
2026-04-17 11:34:11 +08:00
zhaoying
e87529876c feat(web): ui update 2026-04-17 11:11:54 +08:00
yingzhao
7bb3e65fb7 Merge pull request #924 from SuanmoSuanyangTechnology/feature/memory_zy
Feature/memory zy
2026-04-17 11:06:27 +08:00
zhaoying
5ada7e77fc fix(web): remove knowledge tags 2026-04-17 11:05:41 +08:00
zhaoying
79b7da44e2 fix(web): remove knowledge tags 2026-04-17 11:04:47 +08:00
wxy
26a3d8a41b refactor(agent): refactor Agent model parameters reset logic and add environment variable support
Split reset_agent_config into two independent methods for getting and resetting model parameters
Add functionality to read quota configuration from environment variables to the default free tier
2026-04-17 11:00:22 +08:00
Ke Sun
2380cd55ef Merge pull request #918 from SuanmoSuanyangTechnology/fix/extract-metadata
refactor(memory): switch metadata extraction from full-replace to inc…
2026-04-17 10:58:51 +08:00
wxy
a105df33ab Merge remote-tracking branch 'upstream/develop' into feat/quota-check-decorator 2026-04-17 10:38:24 +08:00
yingzhao
fd90a4c2ad Merge pull request #922 from SuanmoSuanyangTechnology/feature/model_json_zy
Feature/model json zy
2026-04-17 10:12:30 +08:00
zhaoying
b302a94620 fix(web): remove interface 2026-04-17 10:12:11 +08:00
zhaoying
c96dc53534 fix(web): model options update 2026-04-17 10:07:45 +08:00
wxy
f883c1469d feat(quota management): add end-user quota check for shared conversations
fix(default free plan): adjust free plan quota limits

feat(application service): add functionality to reset Agent model parameters to default values
2026-04-16 19:35:52 +08:00
zhaoying
e015455fb8 feat(web): model support json 2026-04-16 19:00:58 +08:00
wxy
915cb54f21 feat(tenant): add public subscription plan list endpoint and enhance plan information
Add a public subscription plan list endpoint that can be accessed without authentication. Enhance the returned subscription plan information fields, including multi-language support and default free plan fallback logic. Additionally, implement automatic model binding for the knowledge base service.
2026-04-16 17:54:50 +08:00
山程漫悟
cada860a16 Merge pull request #917 from SuanmoSuanyangTechnology/feature/agent-tool_xjn
feat(llm)
2026-04-16 17:50:22 +08:00
Timebomb2018
e1f8ad871b refactor(model): replace qwen-vl-plus-latest with json_output capability in dashscope_models.yaml 2026-04-16 17:47:47 +08:00
Ke Sun
e205aaa6e6 Merge pull request #919 from SuanmoSuanyangTechnology/feat/update-notify-action
ci(workflow): add PR number and merge commit SHA to WeChat release no…
2026-04-16 17:45:10 +08:00
Ke Sun
62edafcebe ci(workflow): add PR number and merge commit SHA to WeChat release notification
- Add PR_NUMBER environment variable to capture pull request number
- Add MERGE_SHA environment variable to capture merge commit SHA
- Extract short SHA (first 7 characters) from merge commit for display
- Update notification content to include PR number with # prefix
- Update notification content to include short commit SHA
- Improve release notification with additional metadata for better traceability
2026-04-16 17:43:23 +08:00
Timebomb2018
ccdf7ae81d refactor(model): replace VolcanoChatOpenAI with CompatibleChatOpenAI for unified omni model support 2026-04-16 17:40:30 +08:00