mirror of
https://github.com/langbot-app/LangBot.git
synced 2025-11-25 03:15:06 +08:00
stash
This commit is contained in:
@@ -35,7 +35,7 @@ class ModelsService:
|
||||
**model_data
|
||||
)
|
||||
)
|
||||
await self.ap.model_mgr.load_model(model_data)
|
||||
await self.ap.model_mgr.load_llm_model(model_data)
|
||||
|
||||
async def get_llm_model(self, model_uuid: str) -> dict | None:
|
||||
result = await self.ap.persistence_mgr.execute_async(
|
||||
@@ -54,12 +54,12 @@ class ModelsService:
|
||||
sqlalchemy.update(persistence_model.LLMModel).where(persistence_model.LLMModel.uuid == model_uuid).values(**model_data)
|
||||
)
|
||||
|
||||
await self.ap.model_mgr.remove_model(model_uuid)
|
||||
await self.ap.model_mgr.load_model(model_data)
|
||||
await self.ap.model_mgr.remove_llm_model(model_uuid)
|
||||
await self.ap.model_mgr.load_llm_model(model_data)
|
||||
|
||||
async def delete_llm_model(self, model_uuid: str) -> None:
|
||||
await self.ap.persistence_mgr.execute_async(
|
||||
sqlalchemy.delete(persistence_model.LLMModel).where(persistence_model.LLMModel.uuid == model_uuid)
|
||||
)
|
||||
|
||||
await self.ap.model_mgr.remove_model(model_uuid)
|
||||
await self.ap.model_mgr.remove_llm_model(model_uuid)
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import aiohttp
|
||||
import typing
|
||||
import sqlalchemy
|
||||
|
||||
from . import entities, requester
|
||||
from ...core import app
|
||||
from ...core import entities as core_entities
|
||||
from .. import entities as llm_entities
|
||||
from ..tools import entities as tools_entities
|
||||
from ...discover import engine
|
||||
from . import token
|
||||
from ...entity.persistence import model as persistence_model
|
||||
@@ -58,14 +61,6 @@ class ModelManager:
|
||||
self.llm_models = []
|
||||
self.requester_components = []
|
||||
self.requester_dict = {}
|
||||
|
||||
async def get_model_by_name(self, name: str) -> entities.LLMModelInfo:
|
||||
"""通过名称获取模型
|
||||
"""
|
||||
for model in self.model_list:
|
||||
if model.name == name:
|
||||
return model
|
||||
raise ValueError(f"无法确定模型 {name} 的信息,请在元数据中配置")
|
||||
|
||||
async def initialize(self):
|
||||
self.requester_components = self.ap.discover.get_components_by_kind('LLMAPIRequester')
|
||||
@@ -92,9 +87,9 @@ class ModelManager:
|
||||
|
||||
# load models
|
||||
for llm_model in llm_models:
|
||||
await self.load_model(llm_model)
|
||||
await self.load_llm_model(llm_model)
|
||||
|
||||
async def load_model(self, model_info: persistence_model.LLMModel | sqlalchemy.Row[persistence_model.LLMModel] | dict):
|
||||
async def load_llm_model(self, model_info: persistence_model.LLMModel | sqlalchemy.Row[persistence_model.LLMModel] | dict):
|
||||
"""加载模型"""
|
||||
|
||||
if isinstance(model_info, sqlalchemy.Row):
|
||||
@@ -113,10 +108,24 @@ class ModelManager:
|
||||
config=model_info.requester_config
|
||||
)
|
||||
)
|
||||
print(runtime_llm_model, runtime_llm_model.model_entity.name, "loaded")
|
||||
self.llm_models.append(runtime_llm_model)
|
||||
|
||||
async def remove_model(self, model_uuid: str):
|
||||
async def get_model_by_name(self, name: str) -> entities.LLMModelInfo: # deprecated
|
||||
"""通过名称获取模型
|
||||
"""
|
||||
for model in self.model_list:
|
||||
if model.name == name:
|
||||
return model
|
||||
raise ValueError(f"无法确定模型 {name} 的信息,请在元数据中配置")
|
||||
|
||||
async def get_model_by_uuid(self, uuid: str) -> entities.LLMModelInfo:
|
||||
"""通过uuid获取模型"""
|
||||
for model in self.llm_models:
|
||||
if model.model_entity.uuid == uuid:
|
||||
return model
|
||||
raise ValueError(f"model {uuid} not found")
|
||||
|
||||
async def remove_llm_model(self, model_uuid: str):
|
||||
"""移除模型"""
|
||||
for model in self.llm_models:
|
||||
if model.model_entity.uuid == model_uuid:
|
||||
@@ -136,3 +145,13 @@ class ModelManager:
|
||||
if component.metadata.name == name:
|
||||
return component.to_plain_dict()
|
||||
return None
|
||||
|
||||
async def invoke_llm(
|
||||
self,
|
||||
query: core_entities.Query,
|
||||
model_uuid: str,
|
||||
messages: list[llm_entities.Message],
|
||||
funcs: list[tools_entities.LLMFunction] = None,
|
||||
) -> llm_entities.Message:
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user