feat: open bot access and guide invalid delivery queries

This commit is contained in:
ar51
2026-09-28 10:05:53 +08:00
parent 1c25c9e1d9
commit f35351d540
8 changed files with 101 additions and 47 deletions

View File

@@ -44,16 +44,17 @@ The bridge extracts exactly one eRob model and one positive quantity from either
a compact input or a natural-language message. Text such as “请查询
eRob142H100I-BHM-18ET[V4],这个数量20台的交期” is accepted. The bridge stops when
the model is missing, multiple different models are present, the quantity is
missing, or multiple possible quantities remain ambiguous. These non-triggering
messages are ignored silently: the bridge sends no Feishu reply, makes no API
request, and appends no record. Only a message containing exactly one complete,
rule-valid eRob model and exactly one positive quantity enters the query workflow.
This gate applies even when the bot receives every message in a group; an @mention
alone does not bypass it. After a valid initial query, the same sender in the same
chat may ask whether there are other candidate models. The bridge keeps that
continuation context in memory for six hours, never shares it across senders or
chats, and stays silent if no matching context exists. A bridge restart clears
the context, so the sender must resend the complete model and quantity. The
missing, or multiple possible quantities remain ambiguous. Invalid private messages
receive a Chinese usage guide with a complete model-and-quantity example. In groups,
invalid text mentioning eRob, AM516, 交期, or 候选型号 receives the same guide;
unrelated group messages stay silent. Private images, files, and voice messages
receive a request to send text. Guidance never calls the prediction API, appends
a record, or adds a received reaction. All human users who can access the Feishu app may use the bot; legacy FEISHU_BOT_ALLOWED_OPEN_IDS settings are ignored.
Only one complete, rule-valid model and one positive quantity enter the query workflow.
After a valid initial query, the same sender in the same chat may ask for more
candidates. Context lasts six hours and is cleared on restart. Without context,
private continuation requests and relevant group requests receive instructions
to resend the model and quantity; unrelated group text remains silent. The
continuation wording is flexible: `还有吗`, `有没有别的`, `再推荐几个`, `继续`,
`下一批`, and `more candidates` are examples rather than fixed commands. The
bridge still requires both continuation intent and valid context, so unrelated