Commit Graph

201 Commits

Author SHA1 Message Date
Ke Sun
bc5ea2d421 Merge pull request #784 from SuanmoSuanyangTechnology/fix/aliases-extract
feat(memory): prevent cross-role alias contamination between user and…
2026-04-03 15:26:31 +08:00
lanceyq
c4ff1a325b refactor(memory): harden alias extraction and sync PgSQL with Neo4j deduped aliases
- Strengthen anti-hallucination rules in extract_triplet prompt to
  enforce verbatim-only alias extraction, removing suggestive examples
- Add _extract_deduped_entity_aliases to sync historical aliases from
  Neo4j two-stage dedup into PgSQL end_user_info
- Remove unused _fetch_neo4j_user_aliases; reuse injected connector
  instead of instantiating new Neo4jConnector
- Simplify _would_merge_cross_role and reuse clean_cross_role_aliases
  in _normalize_special_entity_names
- Reuse _USER_PLACEHOLDER_NAMES from dedup module to avoid duplication
2026-04-03 14:38:55 +08:00
lanceyq
15b3ce3dd5 refactor(memory): deduplicate assistant alias query and fix case-sensitive placeholder matching
- Extract fetch_neo4j_assistant_aliases() into deduped_and_disamb.py as
  single source of truth, replacing inline Cypher in write_tools and
  extraction_orchestrator
- Normalize USER_PLACEHOLDER_NAMES to lowercase and apply .lower() on
  all comparisons to prevent case-variant names leaking into aliases
2026-04-03 13:15:57 +08:00
lanceyq
9cc19047b4 fix(memory): prevent cross-role alias contamination in entity dedup
- Extract user aliases from raw dialog statements instead of post-dedup
  entities to bypass merge pollution
- Add alias cross-cleaning step in _normalize_special_entity_names to
  strip AI assistant aliases from user entities before dedup
- Call clean_cross_role_aliases after second-layer dedup to handle
  historical dirty data merged from Neo4j
- Fix syntax error in prompt_utils.py (ontology_types variable assignment)
2026-04-03 12:34:04 +08:00
lanceyq
7890970a39 feat(memory): prevent cross-role alias contamination between user and AI entities
- Add speaker context to triplet extraction prompt to distinguish alias ownership
- Add explicit examples and rules in extract_triplet.jinja2 for user vs AI alias attribution
- Introduce cross-role merge protection in dedup (accurate, fuzzy, and LLM stages)
- Normalize special entity names (用户/AI助手) before deduplication
- Add clean_cross_role_aliases() to sanitize aliases before Neo4j write
- Refactor _update_end_user_other_name to merge aliases from PgSQL instead of Neo4j
- Filter AI assistant aliases from user alias extraction in orchestrator
2026-04-03 10:57:30 +08:00
Eternity
9cbe9d5edc feat(memory): add perceptual memory retrieval service with BM25+embedding fusion 2026-04-01 18:03:07 +08:00
Timebomb2018
264183cec2 feat(models): support reasoning_content streaming 2026-04-01 15:47:43 +08:00
Ke Sun
3ea42ac27f Merge remote-tracking branch 'origin/release/v0.2.9' into develop 2026-03-31 19:16:13 +08:00
lanceyq
c90b58bbcd [fix] The "write_tools" module actively shuts down the client, and it closes before the task event loop is completed. 2026-03-30 18:19:50 +08:00
lanceyq
052c7c19b3 [fix] Avoid unnecessary index creation costs 2026-03-30 17:44:02 +08:00
lanceyq
e15af5a2ba [fix] Create a complete index 2026-03-30 17:44:02 +08:00
Ke Sun
ea8db7cd90 Merge pull request #728 from SuanmoSuanyangTechnology/fix/aliases
[fix] Refusing the user, I went to "other_name"
2026-03-30 17:26:22 +08:00
Eternity
8dd24533bf fix(memory,task): add Redis fair lock for ordered memory writes 2026-03-30 17:20:54 +08:00
lanceyq
dae7431075 [fix] Refusing the user, I went to "other_name" 2026-03-30 15:39:53 +08:00
Eternity
7acb7045f0 feat(agent, memory): add agent-perceived memory writing 2026-03-30 13:39:49 +08:00
lanceyq
5c11da6a2e [changes] Semantic pruning enables the file to pass through 2026-03-27 19:25:17 +08:00
lanceyq
289b1989e5 [changes] Semantic pruning enables the file to pass through 2026-03-27 19:13:38 +08:00
Ke Sun
4e9b5736b1 feat(cache): Add thread-safe Redis client and enable activity stats cache
- Add get_thread_safe_redis() function with thread-local storage and PID checking to prevent "Future attached to a different loop" errors in Celery thread and prefork pools
- Implement health_check_interval=30 to prevent stale connection errors after fork
- Uncomment and enable ActivityStatsCache module in cache/memory/__init__.py
- Uncomment ActivityStatsCache implementation in activity_stats_cache.py and update to use get_thread_safe_redis()
- Update interest_memory.py to use thread-safe Redis client
- Update write_tools.py to use thread-safe Redis client
- Remove redundant Chinese comments from aioRedis.py for cleaner code
- Ensures safe Redis operations across different execution contexts and Celery worker configurations
2026-03-27 16:54:47 +08:00
lanceyq
9730c5ce0f [changes] Construct the final return structure directly. 2026-03-27 12:24:52 +08:00
lanceyq
8ba0a74473 [changes] Specified element quantity 2026-03-27 12:03:48 +08:00
lanceyq
ac7c891ded 活动统计 2026-03-26 20:44:55 +08:00
Ke Sun
a5bce221bd refactor(memory-api): migrate end user creation to authenticated API endpoint
- Remove unauthenticated end_user_controller and its router registration
- Move end user creation logic to authenticated memory_api_controller endpoint
- Add create_end_user method to MemoryAPIService with workspace authorization
- Fix retrieve_nodes import in read_graph to use correct function reference
- Consolidate end user management under authenticated memory API with API key scoping
2026-03-26 20:12:11 +08:00
lanceyq
a874cc70a4 [changes] Add the content for client initialization failure alarm 2026-03-26 18:18:23 +08:00
lanceyq
2319432182 [changes] Set up Celery tasks to perform clustering 2026-03-26 18:18:23 +08:00
Ke Sun
7556468c6e Merge pull request #686 from SuanmoSuanyangTechnology/feature/user-alias
Feature/user alias
2026-03-26 17:34:00 +08:00
lanceyq
863be50aaf [changes] Spatial verification, retrieval synchronization 2026-03-26 15:03:33 +08:00
Eternity
4d4a780ab7 style(memory): Pref an anomaly in the message null check logic. 2026-03-26 12:05:53 +08:00
lanceyq
f92eb9f45a [changes] Remove the unnecessary prompts 2026-03-25 19:23:31 +08:00
Mark
a136d44e27 Merge pull request #682 from SuanmoSuanyangTechnology/pref/workflow-engine
pref(workflow): optimize workflow execution performance and reduce logging noise
2026-03-25 18:59:27 +08:00
lanceyq
38c6c7f053 [changes] Simultaneously create the "end_user_info" data to ensure that the interface modification takes effect immediately. 2026-03-25 18:47:30 +08:00
lanceyq
c4461c4917 【add】User alias extraction and retrieval 2026-03-25 18:47:29 +08:00
Eternity
85daf576e9 perf(workflow): Optimize downstream node activation method to reduce performance overhead 2026-03-25 17:19:56 +08:00
Timebomb2018
def7367e33 Merge branch 'refs/heads/feature/agent-tool_xjn' into feature/20260105_xjn 2026-03-25 11:48:42 +08:00
Timebomb2018
54cff5861a feat(model): add volcano model 2026-03-25 11:45:49 +08:00
Eternity
89d188fbf3 Merge branch 'develop' into feature/multimodel_memory
# Conflicts:
#	api/app/core/memory/storage_services/extraction_engine/knowledge_extraction/embedding_generation.py
#	api/app/repositories/neo4j/add_nodes.py
#	api/app/repositories/neo4j/cypher_queries.py
#	api/app/repositories/neo4j/graph_saver.py
#	api/app/services/memory_agent_service.py
#	api/app/services/multimodal_service.py
2026-03-24 14:15:18 +08:00
Eternity
6bba574ca6 feat(memory, model): update multi-modal memory write and model list API
- Adjust multi-modal memory write behavior for text and visual data
- Mask API keys in model list response to prevent exposure
- Add capability-based filtering to the model list API
2026-03-24 13:54:15 +08:00
lanceyq
f86448f4bf 【change】 Restore chat mode 1 2026-03-23 17:39:17 +08:00
lanceyq
48e2e613bb 【change】Restore chat mode 2026-03-23 17:34:54 +08:00
lanceyq
31b8a3764e 【change】 1.Standardize log specifications;2.Cluster settings trigger explicitly 2026-03-23 16:38:47 +08:00
Eternity
2ff81ba101 feat(memory): support perception-aware memory writing in workflow and Neo4j nodes 2026-03-23 16:33:25 +08:00
Ke Sun
37bc4beab4 Merge branch 'release/v0.2.8' into develop 2026-03-23 10:24:17 +08:00
Eternity
c17a2dad2d style(memory): Some code style optimizations 2026-03-20 21:05:22 +08:00
Ke Sun
e8ae46b286 feat(memory-api): add end user management and enhance memory API endpoints
- Add end_user_controller with unauthenticated endpoint for creating end users
- Implement get_or_create_end_user logic to handle duplicate end users by other_id
- Register end_user_controller router in main controller initialization
- Add list_memory_configs endpoint to retrieve all workspace memory configurations
- Update MemoryWriteRequest and MemoryReadRequest to make config_id required field
- Refactor memory API endpoints to parse request body directly instead of using Body parameter
- Add CreateEndUserRequest and CreateEndUserResponse schemas for end user creation
- Add ListConfigsResponse schema for configs listing endpoint
- Remove unused config_id and llm_model_id parameters from Neo4j write operation
- Update .gitignore to exclude redbear-mem-metrics and pitch-deck directories
2026-03-20 21:04:41 +08:00
Ke Sun
78316de411 Merge pull request #660 from SuanmoSuanyangTechnology/fix/remove-redundancies
[changes] Remove the unused config_id
2026-03-20 20:50:57 +08:00
lanceyq
e3795fe1ed [changes] Remove the unused config_id 2026-03-20 20:43:29 +08:00
lanceyq
72a2f2a7e8 [add] Introduce examples and triples to enrich the community summaries 2026-03-20 20:19:44 +08:00
lanceyq
b4615bacdc [changes] Modify the execution conditions of the task 2026-03-19 20:17:43 +08:00
lanceyq
f644c84fbb [changes]Community node attribute check 2026-03-19 19:24:37 +08:00
lanceyq
2e50e30071 [changes] Modify the index and complete the range 2026-03-19 12:49:36 +08:00
lanceyq
c2fc4ab4ff [changes] Remove regular logs and apply strict rules. 2026-03-19 12:26:16 +08:00