mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-18 02:16:07 +00:00
feat: llmmodels crud
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import uuid
|
||||
import datetime
|
||||
import sqlalchemy
|
||||
|
||||
from ....core import app
|
||||
from ....entity.persistence import model
|
||||
from ....entity.persistence import model as persistence_model
|
||||
|
||||
|
||||
class ModelsService:
|
||||
@@ -13,23 +15,47 @@ class ModelsService:
|
||||
def __init__(self, ap: app.Application) -> None:
|
||||
self.ap = ap
|
||||
|
||||
async def get_llm_models(self) -> list[model.LLMModel]:
|
||||
async def get_llm_models(self) -> list[dict]:
|
||||
result = await self.ap.persistence_mgr.execute_async(
|
||||
sqlalchemy.select(model.LLMModel)
|
||||
sqlalchemy.select(persistence_model.LLMModel)
|
||||
)
|
||||
|
||||
result_list = result.all()
|
||||
|
||||
return result_list
|
||||
models = result.all()
|
||||
return [
|
||||
self.ap.persistence_mgr.serialize_model(persistence_model.LLMModel, model)
|
||||
for model in models
|
||||
]
|
||||
|
||||
async def create_llm_model(self, model: model.LLMModel) -> None:
|
||||
pass
|
||||
async def create_llm_model(self, model_data: dict) -> None:
|
||||
|
||||
async def get_llm_model(self, model_uuid: str) -> model.LLMModel:
|
||||
pass
|
||||
model_data['uuid'] = str(uuid.uuid4())
|
||||
|
||||
async def update_llm_model(self, model: model.LLMModel) -> None:
|
||||
pass
|
||||
await self.ap.persistence_mgr.execute_async(
|
||||
sqlalchemy.insert(persistence_model.LLMModel).values(
|
||||
**model_data
|
||||
)
|
||||
)
|
||||
# TODO: add to runtime
|
||||
|
||||
async def get_llm_model(self, model_uuid: str) -> dict | None:
|
||||
result = await self.ap.persistence_mgr.execute_async(
|
||||
sqlalchemy.select(persistence_model.LLMModel).where(persistence_model.LLMModel.uuid == model_uuid)
|
||||
)
|
||||
|
||||
model = result.first()
|
||||
|
||||
if model is None:
|
||||
return None
|
||||
|
||||
return self.ap.persistence_mgr.serialize_model(persistence_model.LLMModel, model)
|
||||
|
||||
async def update_llm_model(self, model_uuid: str, model_data: dict) -> None:
|
||||
await self.ap.persistence_mgr.execute_async(
|
||||
sqlalchemy.update(persistence_model.LLMModel).where(persistence_model.LLMModel.uuid == model_uuid).values(**model_data)
|
||||
)
|
||||
|
||||
async def delete_llm_model(self, model_uuid: str) -> None:
|
||||
pass
|
||||
await self.ap.persistence_mgr.execute_async(
|
||||
sqlalchemy.delete(persistence_model.LLMModel).where(persistence_model.LLMModel.uuid == model_uuid)
|
||||
)
|
||||
# TODO: delete from runtime
|
||||
Reference in New Issue
Block a user