mirror of
https://github.com/RYDE-WORK/Langchain-Chatchat.git
synced 2026-01-25 16:23:22 +08:00
* provider_configuration init of MODEL_PLATFORMS * 开发手册 * 兼容model_providers,集成webui及API中平台配置的初始化
76 lines
1.6 KiB
Python
76 lines
1.6 KiB
Python
from abc import abstractmethod
|
|
from collections import deque
|
|
from typing import List, Optional
|
|
|
|
from fastapi import Request
|
|
|
|
from model_providers.core.bootstrap.openai_protocol import (
|
|
ChatCompletionRequest,
|
|
EmbeddingsRequest,
|
|
)
|
|
from model_providers.core.model_manager import ModelManager
|
|
|
|
|
|
class Bootstrap:
|
|
"""最大的任务队列"""
|
|
|
|
_MAX_ONGOING_TASKS: int = 1
|
|
|
|
"""任务队列"""
|
|
_QUEUE: deque = deque()
|
|
|
|
_provider_manager: ModelManager
|
|
|
|
def __init__(self):
|
|
self._version = "v0.0.1"
|
|
|
|
@property
|
|
def provider_manager(self) -> ModelManager:
|
|
return self._provider_manager
|
|
|
|
@provider_manager.setter
|
|
def provider_manager(self, provider_manager: ModelManager):
|
|
self._provider_manager = provider_manager
|
|
|
|
@classmethod
|
|
@abstractmethod
|
|
def from_config(cls, cfg=None):
|
|
return cls()
|
|
|
|
@property
|
|
def version(self):
|
|
return self._version
|
|
|
|
@property
|
|
def queue(self) -> deque:
|
|
return self._QUEUE
|
|
|
|
@classmethod
|
|
async def run(cls):
|
|
raise NotImplementedError
|
|
|
|
@classmethod
|
|
async def destroy(cls):
|
|
raise NotImplementedError
|
|
|
|
|
|
class OpenAIBootstrapBaseWeb(Bootstrap):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
@abstractmethod
|
|
async def list_models(self, provider: str, request: Request):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def create_embeddings(
|
|
self, provider: str, request: Request, embeddings_request: EmbeddingsRequest
|
|
):
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def create_chat_completion(
|
|
self, provider: str, request: Request, chat_request: ChatCompletionRequest
|
|
):
|
|
pass
|