mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-03 20:44:36 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79804b6ecd | ||
|
|
76434b2f4e | ||
|
|
ec8bd4922e | ||
|
|
4ffa773fac | ||
|
|
ea8b7bc8aa | ||
|
|
39ce5646f6 | ||
|
|
5092a82739 | ||
|
|
3bba0b6d9a | ||
|
|
7a19dd503d |
@@ -44,8 +44,8 @@ class GroupRespondRuleCheckStage(stage.PipelineStage):
|
|||||||
|
|
||||||
use_rule = rules['default']
|
use_rule = rules['default']
|
||||||
|
|
||||||
if str(query.launcher_id) in use_rule:
|
if str(query.launcher_id) in rules:
|
||||||
use_rule = use_rule[str(query.launcher_id)]
|
use_rule = rules[str(query.launcher_id)]
|
||||||
|
|
||||||
for rule_matcher in self.rule_matchers: # 任意一个匹配就放行
|
for rule_matcher in self.rule_matchers: # 任意一个匹配就放行
|
||||||
res = await rule_matcher.match(str(query.message_chain), query.message_chain, use_rule, query)
|
res = await rule_matcher.match(str(query.message_chain), query.message_chain, use_rule, query)
|
||||||
|
|||||||
@@ -20,11 +20,14 @@ class PrefixRule(rule_model.GroupRespondRule):
|
|||||||
for prefix in prefixes:
|
for prefix in prefixes:
|
||||||
if message_text.startswith(prefix):
|
if message_text.startswith(prefix):
|
||||||
|
|
||||||
|
# 查找第一个plain元素
|
||||||
|
for me in message_chain:
|
||||||
|
if isinstance(me, mirai.Plain):
|
||||||
|
me.text = me.text[len(prefix):]
|
||||||
|
|
||||||
return entities.RuleJudgeResult(
|
return entities.RuleJudgeResult(
|
||||||
matching=True,
|
matching=True,
|
||||||
replacement=mirai.MessageChain([
|
replacement=message_chain,
|
||||||
mirai.Plain(message_text[len(prefix):])
|
|
||||||
]),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return entities.RuleJudgeResult(
|
return entities.RuleJudgeResult(
|
||||||
|
|||||||
@@ -102,9 +102,16 @@ class OpenAIChatCompletions(api.LLMAPIRequester):
|
|||||||
messages: typing.List[llm_entities.Message],
|
messages: typing.List[llm_entities.Message],
|
||||||
funcs: typing.List[tools_entities.LLMFunction] = None,
|
funcs: typing.List[tools_entities.LLMFunction] = None,
|
||||||
) -> llm_entities.Message:
|
) -> llm_entities.Message:
|
||||||
req_messages = [ # req_messages 仅用于类内,外部同步由 query.messages 进行
|
req_messages = [] # req_messages 仅用于类内,外部同步由 query.messages 进行
|
||||||
m.dict(exclude_none=True) for m in messages
|
for m in messages:
|
||||||
]
|
msg_dict = m.dict(exclude_none=True)
|
||||||
|
content = msg_dict.get("content")
|
||||||
|
if isinstance(content, list):
|
||||||
|
# 检查 content 列表中是否每个部分都是文本
|
||||||
|
if all(isinstance(part, dict) and part.get("type") == "text" for part in content):
|
||||||
|
# 将所有文本部分合并为一个字符串
|
||||||
|
msg_dict["content"] = "\n".join(part["text"] for part in content)
|
||||||
|
req_messages.append(msg_dict)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return await self._closure(req_messages, model, funcs)
|
return await self._closure(req_messages, model, funcs)
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
semantic_version = "v3.2.2"
|
semantic_version = "v3.2.3"
|
||||||
|
|||||||
Reference in New Issue
Block a user