Refine member context profiling detail

This commit is contained in:
liuwei
2026-04-08 10:27:14 +08:00
parent fa98c9e6a5
commit 6401ec02de
7 changed files with 488 additions and 16 deletions

View File

@@ -0,0 +1,351 @@
app:
description: 按群和日期提取群成员日画像,输出严格 JSON供 member_context 插件直接消费
icon: 🤖
icon_background: '#E0F2FE'
mode: workflow
name: member_context
use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
type: marketplace
value:
marketplace_plugin_unique_identifier: langgenius/openai_api_compatible:0.0.27@f9ce3ff5e28f09931a3a7fca59add2d09590408f7e9a3d701b10c77a60249719
version: null
kind: app
version: 0.5.0
workflow:
conversation_variables: []
environment_variables: []
features:
file_upload:
allowed_file_extensions:
- .TXT
allowed_file_types:
- document
allowed_file_upload_methods:
- local_file
- remote_url
enabled: false
fileUploadConfig:
audio_file_size_limit: 50
batch_count_limit: 5
file_size_limit: 15
image_file_batch_limit: 10
image_file_size_limit: 10
single_chunk_attachment_limit: 10
video_file_size_limit: 100
workflow_file_upload_limit: 10
image:
enabled: false
number_limits: 3
transfer_methods:
- local_file
- remote_url
number_limits: 3
opening_statement: ''
retriever_resource:
enabled: false
sensitive_word_avoidance:
enabled: false
speech_to_text:
enabled: false
suggested_questions: []
suggested_questions_after_answer:
enabled: false
text_to_speech:
enabled: false
language: ''
voice: ''
graph:
edges:
- data:
isInIteration: false
isInLoop: false
sourceType: start
targetType: llm
id: start-source-llm-target
selected: false
source: start_node
sourceHandle: source
target: llm_node
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: end
id: llm-source-end-target
selected: false
source: llm_node
sourceHandle: source
target: end_node
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: llm
id: llm_node-fail-branch-1775115372864-target
source: llm_node
sourceHandle: fail-branch
target: '1775115372864'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: end
id: 1775115372864-source-end_node-target
source: '1775115372864'
sourceHandle: source
target: end_node
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
desc: ''
selected: false
title: 开始
type: start
variables:
- label: query
max_length: 120000
options: []
required: false
type: paragraph
variable: query
- label: chatroom_id
max_length: 128
options: []
required: true
type: text-input
variable: chatroom_id
- label: digest_date
max_length: 32
options: []
required: true
type: text-input
variable: digest_date
- label: member_labels
max_length: 50000
options: []
required: true
type: paragraph
variable: member_labels
- label: compressed_chat
max_length: 200000
options: []
required: true
type: paragraph
variable: compressed_chat
height: 213
id: start_node
position:
x: 0
y: 0
positionAbsolute:
x: 0
y: 0
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: false
variable_selector: []
desc: ''
error_strategy: fail-branch
model:
completion_params:
temperature: 0.2
mode: chat
name: gpt-5.4-mini
provider: langgenius/openai_api_compatible/openai_api_compatible
prompt_template:
- id: system_prompt_member_context
role: system
text: "你是微信群后台的成员日行为证据提取器。\n\n任务\n根据给定的一天群聊记录只按 wxid 识别成员,输出每个成员当天的结构化行为观察。\n\
\n关键规则\n1. wxid 是唯一标识。display_name 仅用于展示,不用于身份判定。\n2. 每个 wxid 最终只能输出一条记录,严禁重复输出同一个\
\ wxid。\n3. 请先按 wxid 汇总该成员全天发言,再提取结果。\n4. 即使成员发言以短句为主,只要样本量足够,也必须尽量提炼:\n\
\ - topics\n - discussion_scenarios\n - skill_signals\n - problem_solving_signals\n\
\ - value_preferences\n - habit_signals\n - expression_markers\n\
\ - engagement_traits\n - reply_entry_points\n - social_role\n\
\ - temperament_signal\n - summary_text\n5. identity_clues、family_signals、life_stage_signals\
\ 没有明确公开证据时允许为空。\n6. 不允许因为“短句较多”就统一输出空数组和通用摘要。\n7. 不做心理诊断、不做隐私猜测、不把玩笑当事实。\n\
8. 只能输出候选成员列表中的 wxid。\n9. topics 更偏向反复出现的关注方向discussion_scenarios 更偏向什么情境下会发言skill_signals\
\ 更偏向能力表现problem_solving_signals 更偏向怎么处理问题value_preferences 更偏向判断偏好social_role 更偏向当天在群里的实际作用。\n\
10. expression_markers 记录可观察的表达标记,如常用句式、口头禅、是否爱列步骤/贴日志reply_entry_points 记录什么样的接话方式最容易接住他。\n\
11. 输出前自行去重,同一个 wxid 只保留一条最完整结果。\n\n输出要求\n- 只输出严格 JSON不要 markdown不要解释不要前后缀。\n\
- 输出格式:\n{\n \"members\": [\n {\n \"wxid\": \"成员wxid\",\n \
\ \"display_name\": \"显示名\",\n \"topics\": [\"主题1\"],\n \"discussion_scenarios\"\
: [\"场景1\"],\n \"identity_clues\": [\"身份线索1\"],\n \"skill_signals\"\
: [\"技能信号1\"],\n \"problem_solving_signals\": [\"处理方式1\"],\n \
\ \"family_signals\": [\"家庭线索1\"],\n \"life_stage_signals\": [\"\
阶段线索1\"],\n \"value_preferences\": [\"价值偏好1\"],\n \"interaction_style\"\
: \"一句中文\",\n \"message_pattern\": \"一句中文\",\n \"response_style_hint\"\
: \"一句中文\",\n \"habit_signals\": [\"习惯1\"],\n \"expression_markers\"\
: [\"表达标记1\"],\n \"engagement_traits\": [\"参与特征1\"],\n \"reply_entry_points\"\
: [\"接话点1\"],\n \"decision_style\": \"一句中文\",\n \"social_role\"\
: \"一句中文\",\n \"reply_taboos\": [\"避坑1\"],\n \"temperament_signal\"\
: \"一句中文\",\n \"summary_text\": \"不超过100字\",\n \"representative_messages\"\
: [\"原话1\", \"原话2\"],\n \"confidence\": 0.95\n }\n ]\n}\n\n字段约束\n\
- topics、discussion_scenarios、skill_signals、problem_solving_signals、value_preferences、habit_signals、expression_markers、engagement_traits、reply_entry_points\
\ 最多 4 个\n- identity_clues、family_signals、life_stage_signals 最多 3 个\n\
- reply_taboos 最多 3 个\n- representative_messages 最多 3 条\n- 如果某成员样本明显不足,可以不输出该成员\n"
- id: user_prompt_member_context
role: user
text: '群ID: {{#start_node.chatroom_id#}}
日期: {{#start_node.digest_date#}}
候选成员:
{{#start_node.member_labels#}}
压缩后的群聊记录:
{{#start_node.compressed_chat#}}
'
retry_config:
max_retries: 3
retry_enabled: true
retry_interval: 1000
selected: false
title: 成员画像提取
type: llm
variables: []
vision:
enabled: false
height: 154
id: llm_node
position:
x: 342
y: 30
positionAbsolute:
x: 342
y: 30
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
desc: ''
outputs:
- value_selector:
- llm_node
- text
variable: text
selected: false
title: 结束
type: end
height: 88
id: end_node
position:
x: 1066
y: 52
positionAbsolute:
x: 1066
y: 52
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: false
variable_selector: []
default_value:
- key: text
type: string
value: '{"members": []}'
error_strategy: default-value
model:
completion_params:
temperature: 0.7
mode: chat
name: grok-4-fast
provider: langgenius/openai_api_compatible/openai_api_compatible
prompt_template:
- id: c5ee983e-d6e0-4790-ac3b-f4e097013b70
role: system
text: "你是微信群后台的成员日行为证据提取器。\n\n任务\n根据给定的一天群聊记录只按 wxid 识别成员,输出每个成员当天的结构化行为观察。\n\
\n关键规则\n1. wxid 是唯一标识。display_name 仅用于展示,不用于身份判定。\n2. 每个 wxid 最终只能输出一条记录,严禁重复输出同一个\
\ wxid。\n3. 请先按 wxid 汇总该成员全天发言,再提取结果。\n4. 即使成员发言以短句为主,只要样本量足够,也必须尽量提炼:\n\
\ - topics\n - discussion_scenarios\n - skill_signals\n - problem_solving_signals\n\
\ - value_preferences\n - habit_signals\n - expression_markers\n\
\ - engagement_traits\n - reply_entry_points\n - social_role\n\
\ - temperament_signal\n - summary_text\n5. identity_clues、family_signals、life_stage_signals\
\ 没有明确公开证据时允许为空。\n6. 不允许因为“短句较多”就统一输出空数组和通用摘要。\n7. 不做心理诊断、不做隐私猜测、不把玩笑当事实。\n\
8. 只能输出候选成员列表中的 wxid。\n9. topics 更偏向反复出现的关注方向discussion_scenarios 更偏向什么情境下会发言skill_signals\
\ 更偏向能力表现problem_solving_signals 更偏向怎么处理问题value_preferences 更偏向判断偏好social_role 更偏向当天在群里的实际作用。\n\
10. expression_markers 记录可观察的表达标记,如常用句式、口头禅、是否爱列步骤/贴日志reply_entry_points 记录什么样的接话方式最容易接住他。\n\
11. 输出前自行去重,同一个 wxid 只保留一条最完整结果。\n\n输出要求\n- 只输出严格 JSON不要 markdown不要解释不要前后缀。\n\
- 输出格式:\n{\n \"members\": [\n {\n \"wxid\": \"成员wxid\",\n \
\ \"display_name\": \"显示名\",\n \"topics\": [\"主题1\"],\n \"discussion_scenarios\"\
: [\"场景1\"],\n \"identity_clues\": [\"身份线索1\"],\n \"skill_signals\"\
: [\"技能信号1\"],\n \"problem_solving_signals\": [\"处理方式1\"],\n \
\ \"family_signals\": [\"家庭线索1\"],\n \"life_stage_signals\": [\"\
阶段线索1\"],\n \"value_preferences\": [\"价值偏好1\"],\n \"interaction_style\"\
: \"一句中文\",\n \"message_pattern\": \"一句中文\",\n \"response_style_hint\"\
: \"一句中文\",\n \"habit_signals\": [\"习惯1\"],\n \"expression_markers\"\
: [\"表达标记1\"],\n \"engagement_traits\": [\"参与特征1\"],\n \"reply_entry_points\"\
: [\"接话点1\"],\n \"decision_style\": \"一句中文\",\n \"social_role\"\
: \"一句中文\",\n \"reply_taboos\": [\"避坑1\"],\n \"temperament_signal\"\
: \"一句中文\",\n \"summary_text\": \"不超过100字\",\n \"representative_messages\"\
: [\"原话1\", \"原话2\"],\n \"confidence\": 0.95\n }\n ]\n}\n\n字段约束\n\
- topics、discussion_scenarios、skill_signals、problem_solving_signals、value_preferences、habit_signals、expression_markers、engagement_traits、reply_entry_points\
\ 最多 4 个\n- identity_clues、family_signals、life_stage_signals 最多 3 个\n\
- reply_taboos 最多 3 个\n- representative_messages 最多 3 条\n- 如果某成员样本明显不足,可以不输出该成员\n"
- id: 2df6d4ce-4e40-42a9-85f3-184075da24c7
role: user
text: '群ID: {{#start_node.chatroom_id#}}
日期: {{#start_node.digest_date#}}
候选成员:
{{#start_node.member_labels#}}
压缩后的群聊记录:
{{#start_node.compressed_chat#}}
'
selected: true
title: 异常分支
type: llm
vision:
enabled: false
height: 124
id: '1775115372864'
position:
x: 704
y: 132
positionAbsolute:
x: 704
y: 132
selected: true
sourcePosition: right
targetPosition: left
type: custom
width: 242
viewport:
x: 210
y: 340
zoom: 0.7
rag_pipeline_variables: []