mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-08 14:56:03 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
09dba91a37 | ||
|
|
18ec4adac9 | ||
|
|
8bedaa468a | ||
|
|
0ab366fcac | ||
|
|
d664039e54 | ||
|
|
6535ba4f72 | ||
|
|
3b181cff93 | ||
|
|
d1274366a0 | ||
|
|
35a4b0f55f |
4
codecov.yml
Normal file
4
codecov.yml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
coverage:
|
||||||
|
status:
|
||||||
|
project: off
|
||||||
|
patch: off
|
||||||
@@ -9,7 +9,6 @@ from .. import handler
|
|||||||
from ... import entities
|
from ... import entities
|
||||||
from ....provider import runner as runner_module
|
from ....provider import runner as runner_module
|
||||||
|
|
||||||
import langbot_plugin.api.entities.builtin.platform.message as platform_message
|
|
||||||
import langbot_plugin.api.entities.events as events
|
import langbot_plugin.api.entities.events as events
|
||||||
from ....utils import importutil
|
from ....utils import importutil
|
||||||
from ....provider import runners
|
from ....provider import runners
|
||||||
@@ -47,18 +46,19 @@ class ChatMessageHandler(handler.MessageHandler):
|
|||||||
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
||||||
|
|
||||||
is_create_card = False # 判断下是否需要创建流式卡片
|
is_create_card = False # 判断下是否需要创建流式卡片
|
||||||
|
|
||||||
if event_ctx.is_prevented_default():
|
if event_ctx.is_prevented_default():
|
||||||
if event_ctx.event.reply is not None:
|
if event_ctx.event.reply_message_chain is not None:
|
||||||
mc = platform_message.MessageChain(event_ctx.event.reply)
|
mc = event_ctx.event.reply_message_chain
|
||||||
query.resp_messages.append(mc)
|
query.resp_messages.append(mc)
|
||||||
|
|
||||||
yield entities.StageProcessResult(result_type=entities.ResultType.CONTINUE, new_query=query)
|
yield entities.StageProcessResult(result_type=entities.ResultType.CONTINUE, new_query=query)
|
||||||
else:
|
else:
|
||||||
yield entities.StageProcessResult(result_type=entities.ResultType.INTERRUPT, new_query=query)
|
yield entities.StageProcessResult(result_type=entities.ResultType.INTERRUPT, new_query=query)
|
||||||
else:
|
else:
|
||||||
if event_ctx.event.alter is not None:
|
if event_ctx.event.user_message_alter is not None:
|
||||||
# if isinstance(event_ctx.event, str): # 现在暂时不考虑多模态alter
|
# if isinstance(event_ctx.event, str): # 现在暂时不考虑多模态alter
|
||||||
query.user_message.content = event_ctx.event.alter
|
query.user_message.content = event_ctx.event.user_message_alter
|
||||||
|
|
||||||
text_length = 0
|
text_length = 0
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import typing
|
|||||||
from .. import handler
|
from .. import handler
|
||||||
from ... import entities
|
from ... import entities
|
||||||
import langbot_plugin.api.entities.builtin.provider.message as provider_message
|
import langbot_plugin.api.entities.builtin.provider.message as provider_message
|
||||||
import langbot_plugin.api.entities.builtin.platform.message as platform_message
|
|
||||||
import langbot_plugin.api.entities.builtin.provider.session as provider_session
|
import langbot_plugin.api.entities.builtin.provider.session as provider_session
|
||||||
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query
|
||||||
import langbot_plugin.api.entities.events as events
|
import langbot_plugin.api.entities.events as events
|
||||||
@@ -49,8 +48,8 @@ class CommandHandler(handler.MessageHandler):
|
|||||||
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
event_ctx = await self.ap.plugin_connector.emit_event(event)
|
||||||
|
|
||||||
if event_ctx.is_prevented_default():
|
if event_ctx.is_prevented_default():
|
||||||
if event_ctx.event.reply is not None:
|
if event_ctx.event.reply_message_chain is not None:
|
||||||
mc = platform_message.MessageChain(event_ctx.event.reply)
|
mc = event_ctx.event.reply_message_chain
|
||||||
|
|
||||||
query.resp_messages.append(mc)
|
query.resp_messages.append(mc)
|
||||||
|
|
||||||
@@ -59,11 +58,6 @@ class CommandHandler(handler.MessageHandler):
|
|||||||
yield entities.StageProcessResult(result_type=entities.ResultType.INTERRUPT, new_query=query)
|
yield entities.StageProcessResult(result_type=entities.ResultType.INTERRUPT, new_query=query)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if event_ctx.event.alter is not None:
|
|
||||||
query.message_chain = platform_message.MessageChain(
|
|
||||||
[platform_message.Plain(text=event_ctx.event.alter)]
|
|
||||||
)
|
|
||||||
|
|
||||||
session = await self.ap.sess_mgr.get_session(query)
|
session = await self.ap.sess_mgr.get_session(query)
|
||||||
|
|
||||||
async for ret in self.ap.cmd_mgr.execute(
|
async for ret in self.ap.cmd_mgr.execute(
|
||||||
@@ -80,8 +74,12 @@ class CommandHandler(handler.MessageHandler):
|
|||||||
self.ap.logger.info(f'Command({query.query_id}) error: {self.cut_str(str(ret.error))}')
|
self.ap.logger.info(f'Command({query.query_id}) error: {self.cut_str(str(ret.error))}')
|
||||||
|
|
||||||
yield entities.StageProcessResult(result_type=entities.ResultType.CONTINUE, new_query=query)
|
yield entities.StageProcessResult(result_type=entities.ResultType.CONTINUE, new_query=query)
|
||||||
elif (ret.text is not None or ret.image_url is not None or ret.image_base64 is not None
|
elif (
|
||||||
or ret.file_url is not None):
|
ret.text is not None
|
||||||
|
or ret.image_url is not None
|
||||||
|
or ret.image_base64 is not None
|
||||||
|
or ret.file_url is not None
|
||||||
|
):
|
||||||
content: list[provider_message.ContentElement] = []
|
content: list[provider_message.ContentElement] = []
|
||||||
|
|
||||||
if ret.text is not None:
|
if ret.text is not None:
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class AtBotRule(rule_model.GroupRespondRule):
|
|||||||
def remove_at(message_chain: platform_message.MessageChain):
|
def remove_at(message_chain: platform_message.MessageChain):
|
||||||
nonlocal found
|
nonlocal found
|
||||||
for component in message_chain.root:
|
for component in message_chain.root:
|
||||||
if isinstance(component, platform_message.At) and component.target == query.adapter.bot_account_id:
|
if isinstance(component, platform_message.At) and str(component.target) == str(query.adapter.bot_account_id):
|
||||||
message_chain.remove(component)
|
message_chain.remove(component)
|
||||||
found = True
|
found = True
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -80,8 +80,8 @@ class ResponseWrapper(stage.PipelineStage):
|
|||||||
new_query=query,
|
new_query=query,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
if event_ctx.event.reply is not None:
|
if event_ctx.event.reply_message_chain is not None:
|
||||||
query.resp_message_chain.append(platform_message.MessageChain(event_ctx.event.reply))
|
query.resp_message_chain.append(event_ctx.event.reply_message_chain)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
query.resp_message_chain.append(result.get_content_platform_message_chain())
|
query.resp_message_chain.append(result.get_content_platform_message_chain())
|
||||||
@@ -123,10 +123,8 @@ class ResponseWrapper(stage.PipelineStage):
|
|||||||
new_query=query,
|
new_query=query,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
if event_ctx.event.reply is not None:
|
if event_ctx.event.reply_message_chain is not None:
|
||||||
query.resp_message_chain.append(
|
query.resp_message_chain.append(event_ctx.event.reply_message_chain)
|
||||||
platform_message.MessageChain(text=event_ctx.event.reply)
|
|
||||||
)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
query.resp_message_chain.append(
|
query.resp_message_chain.append(
|
||||||
|
|||||||
@@ -139,19 +139,15 @@ class QQOfficialAdapter(abstract_platform_adapter.AbstractMessagePlatformAdapter
|
|||||||
event_converter: QQOfficialEventConverter = QQOfficialEventConverter()
|
event_converter: QQOfficialEventConverter = QQOfficialEventConverter()
|
||||||
|
|
||||||
def __init__(self, config: dict, logger: EventLogger):
|
def __init__(self, config: dict, logger: EventLogger):
|
||||||
self.config = config
|
bot = QQOfficialClient(
|
||||||
self.logger = logger
|
app_id=config['appid'], secret=config['secret'], token=config['token'], logger=logger
|
||||||
|
)
|
||||||
|
|
||||||
required_keys = [
|
super().__init__(
|
||||||
'appid',
|
config=config,
|
||||||
'secret',
|
logger=logger,
|
||||||
]
|
bot=bot,
|
||||||
missing_keys = [key for key in required_keys if key not in config]
|
bot_account_id=config['appid'],
|
||||||
if missing_keys:
|
|
||||||
raise command_errors.ParamNotEnoughError('QQ官方机器人缺少相关配置项,请查看文档或联系管理员')
|
|
||||||
|
|
||||||
self.bot = QQOfficialClient(
|
|
||||||
app_id=config['appid'], secret=config['secret'], token=config['token'], logger=self.logger
|
|
||||||
)
|
)
|
||||||
|
|
||||||
async def reply_message(
|
async def reply_message(
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
semantic_version = 'v4.3.3'
|
semantic_version = 'v4.3.7b1'
|
||||||
|
|
||||||
required_database_version = 8
|
required_database_version = 8
|
||||||
"""Tag the version of the database schema, used to check if the database needs to be migrated"""
|
"""Tag the version of the database schema, used to check if the database needs to be migrated"""
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "langbot"
|
name = "langbot"
|
||||||
version = "4.3.3"
|
version = "4.3.7b1"
|
||||||
description = "Easy-to-use global IM bot platform designed for LLM era"
|
description = "Easy-to-use global IM bot platform designed for LLM era"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10.1,<4.0"
|
requires-python = ">=3.10.1,<4.0"
|
||||||
@@ -62,7 +62,7 @@ dependencies = [
|
|||||||
"langchain>=0.2.0",
|
"langchain>=0.2.0",
|
||||||
"chromadb>=0.4.24",
|
"chromadb>=0.4.24",
|
||||||
"qdrant-client (>=1.15.1,<2.0.0)",
|
"qdrant-client (>=1.15.1,<2.0.0)",
|
||||||
"langbot-plugin==0.1.3",
|
"langbot-plugin==0.1.4b2",
|
||||||
"asyncpg>=0.30.0",
|
"asyncpg>=0.30.0",
|
||||||
"line-bot-sdk>=3.19.0",
|
"line-bot-sdk>=3.19.0",
|
||||||
"tboxsdk>=0.0.10",
|
"tboxsdk>=0.0.10",
|
||||||
|
|||||||
Reference in New Issue
Block a user