3340 Commits

Author SHA1 Message Date
Timebomb2018
d4a1904b19 refactor(workflow): rename condition variables to expression in if-else node logic 2026-04-17 18:02:48 +08:00
lanceyq
ecdad19f54 perf(memory): truncate profile list fields to 5 items in get_end_user_info response
Limit role, domain, expertise, and interests arrays to MAX_PROFILE_LIST_SIZE (5) entries when returning end user info to reduce response payload size.
2026-04-17 17:54:54 +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
miao
f597139913 feat(memory-config): add V1 emotion and reflection engine config endpoints
Add read/update endpoints for emotion engine config (read_config_emotion, update_config_emotion)
Add read/update endpoints for reflection engine config (read_config_reflection, update_config_reflection)
Add EmotionConfigUpdateRequest and ReflectionConfigUpdateRequest schemas
Reuse emotion_config_controller and memory_reflection_controller with ownership verification
2026-04-17 17:35:19 +08:00
lanceyq
113ae59f84 refactor(memory): insert new metadata values at list head for recency ordering
Change list.append() to list.insert(0, ...) in extract_user_metadata_task so that newly extracted user metadata values appear at the front of each field list, maintaining a newest-first ordering.
2026-04-17 17:33:17 +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
Eternity
749cf79581 refactor(memory): consolidate memory search services and update model client handling
- Consolidate memory search services by removing separate content_search.py and perceptual_search.py
- Update model client handling in base_pipeline.py to use ModelApiKeyService for LLM client initialization
- Add new prompt files and modify existing services to support consolidated search architecture
- Refactor memory read pipeline and related services to use updated model client approach
2026-04-17 10:35:45 +08:00
miao
0dd8cc5d43 Merge remote-tracking branch 'origin/develop' into feat/enduser-info-apikey 2026-04-17 10:21:26 +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
miao
ddfd81259a feat(memory-config): Add V1 memory config management API endpoints
-Add full CRUD endpoints for memory config via API Key auth (/v1/memory_config)
-Add V1 request schemas: ConfigCreateRequest, ConfigUpdateRequest, ConfigUpdateExtractedRequest, ConfigUpdateForgettingRequest
-Add config-workspace ownership verification
-Add scenes/simple, read_all_config, read_config_extracted query endpoints
-Add create_config, update_config, update_config_extracted, update_config_forgetting, delete_config mutation endpoints
-Reuse management-side controllers with pre-validation ownership checks
2026-04-16 19:05:24 +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
lanceyq
643f69bb90 refactor(memory): tighten metadata field types and clean up descriptions
- Use Literal['set', 'remove'] for MetadataFieldChange.action instead of str
- Simplify field_path description to reflect current schema
- Remove redundant isinstance check in extract_user_metadata_task
2026-04-16 17:29:00 +08:00
lanceyq
73fbc19747 refactor(memory): switch metadata extraction from full-replace to incremental changes
- Replace UserMetadata full-object overwrite with incremental MetadataFieldChange
  operations (set/remove per field path)
- Convert profile.role and profile.domain from scalar strings to lists
- Remove UserMetadataBehavioralHints and knowledge_tags fields
- Update Jinja2 prompt to instruct LLM to output incremental changes
- Update extract_user_metadata_task to apply changes via deep-copy and
  per-field mutation for proper SQLAlchemy change detection
- Minor lint: remove unnecessary f-string prefixes in tasks.py
2026-04-16 17:14:30 +08:00
Timebomb2018
7ba0726473 refactor(model): remove mutual exclusion logic between json_output and deep_thinking 2026-04-16 16:36:15 +08:00
Timebomb2018
8c6b65db12 feat(llm): add json_output support for structured LLM responses 2026-04-16 16:27:55 +08:00
Mark
5ce0bdb0f5 Merge pull request #899 from wanxunyang/feature/add-quota-check-decorator
Feature/add quota check decorator
2026-04-16 13:48:40 +08:00