mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-18 03:34:20 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b560432b0b | |||
| 99e5478ced |
+17
-1
@@ -18,7 +18,7 @@ from langbot_plugin.api.entities import events
|
|||||||
from langbot_plugin.api.entities import context
|
from langbot_plugin.api.entities import context
|
||||||
import langbot_plugin.runtime.io.connection as base_connection
|
import langbot_plugin.runtime.io.connection as base_connection
|
||||||
from langbot_plugin.api.definition.components.manifest import ComponentManifest
|
from langbot_plugin.api.definition.components.manifest import ComponentManifest
|
||||||
from langbot_plugin.api.entities.builtin.command import context as command_context
|
from langbot_plugin.api.entities.builtin.command import context as command_context, errors as command_errors
|
||||||
from langbot_plugin.runtime.plugin.mgr import PluginInstallSource
|
from langbot_plugin.runtime.plugin.mgr import PluginInstallSource
|
||||||
from ..core import taskmgr
|
from ..core import taskmgr
|
||||||
|
|
||||||
@@ -191,6 +191,9 @@ class PluginRuntimeConnector:
|
|||||||
task_context.trace(trace)
|
task_context.trace(trace)
|
||||||
|
|
||||||
async def list_plugins(self) -> list[dict[str, Any]]:
|
async def list_plugins(self) -> list[dict[str, Any]]:
|
||||||
|
if not self.is_enable_plugin:
|
||||||
|
return []
|
||||||
|
|
||||||
return await self.handler.list_plugins()
|
return await self.handler.list_plugins()
|
||||||
|
|
||||||
async def get_plugin_info(self, author: str, plugin_name: str) -> dict[str, Any]:
|
async def get_plugin_info(self, author: str, plugin_name: str) -> dict[str, Any]:
|
||||||
@@ -211,6 +214,7 @@ class PluginRuntimeConnector:
|
|||||||
|
|
||||||
if not self.is_enable_plugin:
|
if not self.is_enable_plugin:
|
||||||
return event_ctx
|
return event_ctx
|
||||||
|
|
||||||
event_ctx_result = await self.handler.emit_event(event_ctx.model_dump(serialize_as_any=True))
|
event_ctx_result = await self.handler.emit_event(event_ctx.model_dump(serialize_as_any=True))
|
||||||
|
|
||||||
event_ctx = context.EventContext.model_validate(event_ctx_result['event_context'])
|
event_ctx = context.EventContext.model_validate(event_ctx_result['event_context'])
|
||||||
@@ -218,14 +222,23 @@ class PluginRuntimeConnector:
|
|||||||
return event_ctx
|
return event_ctx
|
||||||
|
|
||||||
async def list_tools(self) -> list[ComponentManifest]:
|
async def list_tools(self) -> list[ComponentManifest]:
|
||||||
|
if not self.is_enable_plugin:
|
||||||
|
return []
|
||||||
|
|
||||||
list_tools_data = await self.handler.list_tools()
|
list_tools_data = await self.handler.list_tools()
|
||||||
|
|
||||||
return [ComponentManifest.model_validate(tool) for tool in list_tools_data]
|
return [ComponentManifest.model_validate(tool) for tool in list_tools_data]
|
||||||
|
|
||||||
async def call_tool(self, tool_name: str, parameters: dict[str, Any]) -> dict[str, Any]:
|
async def call_tool(self, tool_name: str, parameters: dict[str, Any]) -> dict[str, Any]:
|
||||||
|
if not self.is_enable_plugin:
|
||||||
|
return {'error': 'Tool not found: plugin system is disabled'}
|
||||||
|
|
||||||
return await self.handler.call_tool(tool_name, parameters)
|
return await self.handler.call_tool(tool_name, parameters)
|
||||||
|
|
||||||
async def list_commands(self) -> list[ComponentManifest]:
|
async def list_commands(self) -> list[ComponentManifest]:
|
||||||
|
if not self.is_enable_plugin:
|
||||||
|
return []
|
||||||
|
|
||||||
list_commands_data = await self.handler.list_commands()
|
list_commands_data = await self.handler.list_commands()
|
||||||
|
|
||||||
return [ComponentManifest.model_validate(command) for command in list_commands_data]
|
return [ComponentManifest.model_validate(command) for command in list_commands_data]
|
||||||
@@ -233,6 +246,9 @@ class PluginRuntimeConnector:
|
|||||||
async def execute_command(
|
async def execute_command(
|
||||||
self, command_ctx: command_context.ExecuteContext
|
self, command_ctx: command_context.ExecuteContext
|
||||||
) -> typing.AsyncGenerator[command_context.CommandReturn, None]:
|
) -> typing.AsyncGenerator[command_context.CommandReturn, None]:
|
||||||
|
if not self.is_enable_plugin:
|
||||||
|
yield command_context.CommandReturn(error=command_errors.CommandNotFoundError(command_ctx.command))
|
||||||
|
|
||||||
gen = self.handler.execute_command(command_ctx.model_dump(serialize_as_any=True))
|
gen = self.handler.execute_command(command_ctx.model_dump(serialize_as_any=True))
|
||||||
|
|
||||||
async for ret in gen:
|
async for ret in gen:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
semantic_version = 'v4.3.7b1'
|
semantic_version = 'v4.3.7'
|
||||||
|
|
||||||
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"""
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "langbot"
|
name = "langbot"
|
||||||
version = "4.3.7b1"
|
version = "4.3.7"
|
||||||
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.4b2",
|
"langbot-plugin==0.1.4",
|
||||||
"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