Commit Graph

76 Commits

Author SHA1 Message Date
Eternity
c5dd09cf50 Feature/memory work (#61)
* refactor(conversation): separate service and repository layers for conversation module

- Split ConversationService and repository/UnitOfWork layers
- Service layer now only handles business logic and orchestration
- Repository layer handles all direct database operations
- UnitOfWork encapsulates transactional operations for messages
- Ensured all public methods have clear English docstrings with arguments, return values, and exceptions

* feat(memory): implement work memory endpoints and services

- Added API routes for conversation count, conversation list, messages, and detail.
- Integrated ConversationService for database queries and LLM-based summary generation.

* feat(memory): implement work memory endpoints and services

- Added API routes for conversation count, conversation list, messages, and detail.
- Integrated ConversationService for database queries and LLM-based summary generation.

* feat(workflow): fix issues causing workflow failures

if-else None value error
knowledge empty list rerank
end node output none node value
assigner input none value

* feat(memory): convert memory file creation time to timestamp and include title and first-line fields in file type

* fix(memory): fix serialization output and default value issues

* fix(workflow): fix issue with hybrid search logic in knowledge retrieval node
2026-01-08 18:48:29 +08:00
mengyonghao
569a211810 fix(workflow): remove environment variable fields from default workflow template 2026-01-07 17:53:53 +08:00
Eternity
c52b360068 Feature/memory perceptual (#48)
* perf(workflow): pass JSON data to HTTP node as a string

* perf(prompt_opt): simplify log output

* feat(memory): add perceptual memory page API and related database schema

* perf(log): clean up API exception log output

* perf(memory): simplify perceptual memory timeline response by removing metadata
2026-01-07 16:00:22 +08:00
mengyonghao
a716c607d7 fix(workflow): optimize input_type validation for loop variables 2026-01-06 18:44:40 +08:00
谢俊男
962b74a68a fix(workflow node): Workflow nodes and question classifier nodes - bug fixes 2026-01-06 12:09:55 +08:00
mengyonghao
411525687e fix(workflow): temporarily ignore non-text fields in knowledge retrieval node 2026-01-06 11:38:03 +08:00
mengyonghao
049642ae48 fix(workflow): require end node only in main graph during runtime validation 2026-01-06 10:46:55 +08:00
mengyonghao
0300abc454 feat(workflow): fix concurrent update conflict of looping flag in parallel loop nodes 2026-01-06 10:35:43 +08:00
mengyonghao
71c5b54532 fix(workflow): throw exception when HTTP request node error handler is empty 2026-01-05 18:22:17 +08:00
mengyonghao
e1e77f70f9 feat(workflow): support context injection in LLM node 2026-01-05 17:37:45 +08:00
mengyonghao
d4a87187cb fix(workflow): fix memory node message field not supporting variables 2026-01-05 17:32:20 +08:00
mengyonghao
29ccf956ec pref(workflow): skip orphan node check in runtime execution 2026-01-05 17:30:28 +08:00
mengyonghao
35db38c2de feat(workflow): support context injection in LLM node 2026-01-05 17:17:52 +08:00
Eternity
78207aca34 feat(workflow): add memory read and write node (#24) 2026-01-05 15:57:04 +08:00
mengyonghao
fc4cf418e0 feat(workflow): add support for question classifier in graph construction 2026-01-05 11:29:27 +08:00
mengyonghao
63f0fa5da2 Merge branch 'develop' into feature/20251219_myh
# Conflicts:
#	api/app/core/workflow/executor.py
#	api/app/core/workflow/nodes/node_factory.py
#	api/app/core/workflow/nodes/question_classifier/node.py
2026-01-05 11:10:01 +08:00
mengyonghao
4685fd14ad refactor(workflow): refactor graph construction to support subgraph building 2026-01-05 11:06:21 +08:00
mengyonghao
5957eb9c1a fix(workflow): ensure default values are properly retrieved in HTTP nodes 2026-01-05 11:02:17 +08:00
mengyonghao
1f6835a8e0 feat(workflow): enable front-end to cover pre-rendered non-variable values 2026-01-05 11:00:50 +08:00
mengyonghao
b56994b999 feat(workflow): update workflow conditional logic 2026-01-05 10:57:44 +08:00
mengyonghao
eaf2437633 feat(prompt_opt): support streaming output for prompt optimization API 2026-01-05 10:53:53 +08:00
mengyonghao
fc831e04c1 feat(workflow): support retrieving variables wrapped in {{}} from variable pool 2026-01-05 10:52:46 +08:00
mengyonghao
55dac533d9 fix(workflow): fix passing of loop variable termination condition 2026-01-05 10:50:32 +08:00
mengyonghao
373b91143d feat(workflow): support variable types(TODO) 2026-01-05 10:49:30 +08:00
谢俊男
c0b29dd938 feat(workflow_node): question classifier node optimization 2026-01-04 19:06:51 +08:00
谢俊男
b731389c81 Merge branch 'refs/heads/develop' into feature/20251219_xjn 2026-01-04 15:35:57 +08:00
mengyonghao
e08e761319 fix(workflow): adapt node ID regex to support symbols 2025-12-31 12:07:59 +08:00
谢俊男
0475d80472 feat(tool system): add workflow tool nodes 2025-12-30 21:08:05 +08:00
孟永豪
0e5397bcf4 Merge #86 into develop from feature/20251219_myh
fix(workflow): prevent duplicate conditional branches in if-else nodes

* feature/20251219_myh: (3 commits squashed)

  - perf(workflow): adjust default template to be compatible with frontend format

  - fix: correct function naming for memory retrieval

  - fix(workflow): prevent duplicate conditional branches in if-else nodes

Signed-off-by: Eternity <1533512157@qq.com>
Reviewed-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>
Merged-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>

CR-link: https://codeup.aliyun.com/redbearai/python/redbear-mem-open/change/86
2025-12-30 07:53:49 +00:00
孟永豪
9bedcadca4 Merge #80 into develop from feature/20251219_myh
feat(workflow): support cycle nodes in workflow config validation and enhance node logging

* feature/20251219_myh: (11 commits squashed)

  - feat(workflow): update reranker model configuration for knowledge base retrieval

  - fix(workflow): fix output issue in parameter extraction node

  - fix(workflow): fix output issue in parameter extraction node

  - feat(workflow): add user prompt to parameter extraction node

  - perf(workflow): change grouped variable input to key-value format in variable aggregator

  - feat(workflow): Add new cycle node for iterative workflow execution
    
    - Introduce a new Loop/Iteration node in the workflow engine.
    - Supports both conditional loops and iteration over lists.
    - Allows parallel execution and flattening of iteration outputs.
    - Maintains runtime state, node outputs, and loop variables for downstream nodes.
    - Enhances workflow flexibility for complex, repeated operations.

  - Merge branch &#39;develop&#39; into feature/20251219_myh
    
    # Conflicts:
    #&#9;api/app/core/workflow/nodes/configs.py
    #&#9;api/app/core/workflow/nodes/node_factory.py

  - feat(workflow): Add new cycle node for iterative workflow execution
    
    - Introduce a new Loop/Iteration node in the workflow engine.
    - Supports both conditional loops and iteration over lists.
    - Allows parallel execution and flattening of iteration outputs.
    - Maintains runtime state, node outputs, and loop variables for downstream nodes.
    - Enhances workflow flexibility for complex, repeated operations.

  - feat(workflow): support cycle nodes in workflow config validation and enhance node logging

  - feat(workflow): support cycle nodes in workflow config validation and enhance node logging

  - fix(workflow): fix compatibility with some legacy node configurations

Signed-off-by: Eternity <1533512157@qq.com>
Reviewed-by: zhuwenhui5566@163.com <zhuwenhui5566@163.com>
Reviewed-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>
Merged-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>

CR-link: https://codeup.aliyun.com/redbearai/python/redbear-mem-open/change/80
2025-12-30 03:40:38 +00:00
孟永豪
b376c3d648 Merge #78 into develop from feature/20251219_myh
Merge branch &#39;develop&#39; into feature/20251219_myh

* feature/20251219_myh: (8 commits squashed)

  - feat(workflow): update reranker model configuration for knowledge base retrieval

  - fix(workflow): fix output issue in parameter extraction node

  - fix(workflow): fix output issue in parameter extraction node

  - feat(workflow): add user prompt to parameter extraction node

  - perf(workflow): change grouped variable input to key-value format in variable aggregator

  - feat(workflow): Add new cycle node for iterative workflow execution
    
    - Introduce a new Loop/Iteration node in the workflow engine.
    - Supports both conditional loops and iteration over lists.
    - Allows parallel execution and flattening of iteration outputs.
    - Maintains runtime state, node outputs, and loop variables for downstream nodes.
    - Enhances workflow flexibility for complex, repeated operations.

  - Merge branch &#39;develop&#39; into feature/20251219_myh
    
    # Conflicts:
    #&#9;api/app/core/workflow/nodes/configs.py
    #&#9;api/app/core/workflow/nodes/node_factory.py

  - feat(workflow): Add new cycle node for iterative workflow execution
    
    - Introduce a new Loop/Iteration node in the workflow engine.
    - Supports both conditional loops and iteration over lists.
    - Allows parallel execution and flattening of iteration outputs.
    - Maintains runtime state, node outputs, and loop variables for downstream nodes.
    - Enhances workflow flexibility for complex, repeated operations.

Signed-off-by: Eternity <1533512157@qq.com>
Reviewed-by: zhuwenhui5566@163.com <zhuwenhui5566@163.com>
Reviewed-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>
Merged-by: aliyun6762716068 <accounts_68cb7c6b61f5dcc4200d6251@mail.teambition.com>

CR-link: https://codeup.aliyun.com/redbearai/python/redbear-mem-open/change/78
2025-12-29 11:57:13 +00:00
谢俊男
284951900d feat(workflow-node): question_classfier node development 2025-12-29 17:01:19 +08:00
mengyonghao
ca89aba548 perf(prompt_opt): improve prompt optimization and model output quality 2025-12-26 17:45:14 +08:00
mengyonghao
fc15a7793a feat(workflow): add parameter extraction node
- Implemented ParameterExtractorNode to extract structured parameters from input text using LLM.
- Supports dynamic Jinja2 prompt rendering with field descriptions and types.
- Integrates with RedBearLLM and ModelConfigService for model retrieval.
- Handles JSON repair and raises clear BusinessException on parsing errors.
2025-12-26 14:39:17 +08:00
mengyonghao
7181d41e51 feat(workflow): add VariableAggregatorNode for aggregating workflow variables 2025-12-25 18:38:53 +08:00
mengyonghao
eeb7a3a68d feat(workflow): add Jinja2 template rendering node 2025-12-25 16:54:57 +08:00
mengyonghao
0b141fb952 fix(workflow): fix missing re-ranking for hybrid retrieval results in knowledge base node, add config example 2025-12-25 14:47:22 +08:00
mengyonghao
aef7ae2cce feat(workflow): add default User-Agent and redirect following for HTTP request node, add config example 2025-12-25 14:44:47 +08:00
mengyonghao
8accd36f9e feat(workflow): support variables wrapped with {{}} in assignment nodes, add input config example 2025-12-25 14:41:41 +08:00
mengyonghao
68901e2642 fix(workflow): correct property usage in HTTP request node 2025-12-24 21:32:38 +08:00
mengyonghao
3993aa55ea refactor(workflow): organize knowledge base code structure and add comments 2025-12-24 21:24:21 +08:00
mengyonghao
31a7727992 feat(workflow): add HTTP request node
- Introduce a new HttpRequestNode to enable external HTTP API calls in workflows
- Support multiple HTTP methods (GET, POST, PUT, DELETE, PATCH, HEAD)
- Support authentication strategies (None, Basic, Bearer, Custom header)
- Support multiple request body types (JSON, form-data, x-www-form-urlencoded, raw)
- Add configurable timeout, retry, and SSL verification
- Provide flexible error handling strategies (none, default response, branch)
2025-12-24 21:23:08 +08:00
Mark
63d5047d21 [fix] end stream output 2025-12-24 12:37:50 +08:00
mengyonghao
1253bedcde fix(db): fix database connection handling 2025-12-24 12:23:16 +08:00
mengyonghao
0a8c1be084 fix(db): fix database connection handling 2025-12-24 12:22:59 +08:00
mengyonghao
38220006a6 fix(db): fix database connection handling 2025-12-24 12:21:12 +08:00
mengyonghao
8c4d31e4d5 feat(workflow): implement a workflow node for knowledge base retrieval 2025-12-24 12:10:52 +08:00
mengyonghao
d423e80ddb feat(workflow): support multi-variable assignment in assigner node 2025-12-23 17:45:37 +08:00
mengyonghao
28e88c2d4c fix(workflow): fix incorrect list append logic in assigner node 2025-12-23 16:57:59 +08:00
mengyonghao
0ad5d1b662 fix(workflow): fix incorrect list extend logic in assigner node 2025-12-23 16:57:59 +08:00