95 lines
2.2 KiB
Python
95 lines
2.2 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding:utf-8 -*-
|
|
# @Filename: config.py
|
|
# @Author: lychang
|
|
# @Time: 7/5/2023 1:51 PM
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
|
|
class Configuration:
|
|
def __init__(self):
|
|
self.api_uri = os.getenv(
|
|
"OPENAI_API_BASE"
|
|
)
|
|
self.api_key = os.getenv(
|
|
"OPENAI_API_KEY"
|
|
)
|
|
self.think_model = os.getenv(
|
|
"THINK_MODEL"
|
|
)
|
|
self.llm_model = os.getenv(
|
|
"LLM_MODEL"
|
|
)
|
|
self.vision_model = os.getenv(
|
|
"VISION_MODEL"
|
|
)
|
|
self.db_uri = os.getenv(
|
|
"DATABASE"
|
|
)
|
|
self.assistant_name = os.getenv(
|
|
"ASSISTANT_NAME"
|
|
)
|
|
self.company_name = os.getenv(
|
|
"COMPANY_NAME"
|
|
)
|
|
conf = Configuration()
|
|
|
|
|
|
class ModelConfiguration:
|
|
|
|
def __init__(self):
|
|
self.CONFIG = {
|
|
"deepseek-chat": {
|
|
"name": "deepseek-chat",
|
|
"type": "llm",
|
|
"temperature": 0.1
|
|
},
|
|
"deepseek-r1": {
|
|
"name": "deepseek-r1",
|
|
"type": "llm",
|
|
"temperature": 0.1
|
|
},
|
|
"default": {
|
|
"type": "llm",
|
|
"temperature": 0.1
|
|
},
|
|
"qwen3:8b":{
|
|
"type": "llm",
|
|
"temperature": 0.1,
|
|
"thinking":True
|
|
},
|
|
"minicpm-v": {
|
|
"type": "vision",
|
|
"temperature": 0.1
|
|
},
|
|
"text-embedding-ada-002": {
|
|
"name": "text-embedding-ada-002",
|
|
"type": "embedding"
|
|
|
|
},
|
|
"bge-large": {
|
|
"name": "bge-large",
|
|
"type": "embedding"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@property
|
|
def models(self) -> list[str]:
|
|
return [i for i in self.CONFIG]
|
|
|
|
def get(self, name) -> dict:
|
|
temp = self.CONFIG.get(name, self.CONFIG["default"])
|
|
if "name" not in temp:
|
|
temp["name"] = name
|
|
temp["host"] = conf.api_uri
|
|
temp["key"] = conf.api_key
|
|
return temp
|
|
|
|
|
|
model_conf = ModelConfiguration()
|