diff --git a/apps/schemas/config.py b/apps/schemas/config.py index cf838a1773fd549a8a58da7781094cc3ed24aa8f..f26ec85bd2cbf97b7e8ea3287e646fca597b3df2 100644 --- a/apps/schemas/config.py +++ b/apps/schemas/config.py @@ -86,10 +86,10 @@ class EmbeddingConfig(BaseModel): class RerankerConfig(BaseModel): """Reranker配置""" - provider: str = Field(description="Reranker提供商") - endpoint: str = Field(description="Reranker模型地址") - api_key: str = Field(description="Reranker模型API Key") - model: str = Field(description="Reranker模型名称") + provider: str | None = Field(default=None, description="Reranker提供商") + endpoint: str | None = Field(default=None, description="Reranker模型地址") + api_key: str | None = Field(default=None, description="Reranker模型API Key") + model: str | None = Field(default=None, description="Reranker模型名称") class RAGConfig(BaseModel): diff --git a/apps/services/llm.py b/apps/services/llm.py index 77e37b74e7b6d6725f6f3b10fce137a181940b21..6ae2dca4c64986abc36820367fe66d3158beffff 100644 --- a/apps/services/llm.py +++ b/apps/services/llm.py @@ -594,6 +594,13 @@ class LLMManager: :param model_config: 模型配置对象 :param title: 模型标题 """ + # 检查配置是否为空(对于reranker,允许不配置,默认使用jaccard算法) + if model_type == "reranker": + # 如果关键字段都为空,则跳过初始化(使用jaccard算法作为默认) + if not model_config.provider and not model_config.model: + logger.info(f"[LLMManager] 跳过系统{model_type}模型初始化(将使用jaccard算法作为默认)") + return + mongo = MongoDB() llm_collection = mongo.get_collection("llm") diff --git a/deploy/chart/euler_copilot/configs/framework/config-authelia.toml b/deploy/chart/euler_copilot/configs/framework/config-authelia.toml index ba5a7bb17a5618a1127ff81cdcaa5ee56d90aed8..960859d58ae8b5faf387928c202353b0d72c4bd4 100644 --- a/deploy/chart/euler_copilot/configs/framework/config-authelia.toml +++ b/deploy/chart/euler_copilot/configs/framework/config-authelia.toml @@ -60,18 +60,16 @@ half_key3 = '${halfKey3}' jwt_key = '${jwtKey}' [embedding] -type = '{{ default "openai" .Values.models.embedding.type }}' +provider = '{{ .Values.models.embedding.provider }}' endpoint = '{{ .Values.models.embedding.endpoint }}' api_key = '{{ .Values.models.embedding.key }}' -model = '{{ default "bge-m3" .Values.models.embedding.name }}' -icon = '{{ .Values.models.embedding.icon }}' +model = '{{ .Values.models.embedding.name }}' [reranker] -type = '{{ .Values.models.reranker.type }}' -endpoint = '{{ .Values.models.reranker.endpoint }}' -api_key = '{{ .Values.models.reranker.key }}' -model = '{{ default "BAAI/bge-reranker-v2-m3" .Values.models.reranker.name }}' -icon = '{{ .Values.models.reranker.icon }}' +provider = '{{ default "" .Values.models.reranker.provider }}' +endpoint = '{{ default "" .Values.models.reranker.endpoint }}' +api_key = '{{ default "" .Values.models.reranker.key }}' +model = '{{ default "" .Values.models.reranker.name }}' [rag] rag_service = 'http://rag-service.{{ .Release.Namespace }}.svc.cluster.local:9988' @@ -108,12 +106,11 @@ max_tokens = {{ default 8192 .Values.models.answer.maxTokens }} temperature = {{ default 0.7 .Values.models.answer.temperature }} [function_call] -backend = '{{ default "ollama" .Values.models.functionCall.backend }}' endpoint = '{{ default .Values.models.answer.endpoint .Values.models.functionCall.endpoint }}' model = '{{ default .Values.models.answer.name .Values.models.functionCall.name }}' api_key = '{{ default .Values.models.answer.key .Values.models.functionCall.key }}' max_tokens = {{ default .Values.models.answer.maxTokens .Values.models.functionCall.maxTokens }} -temperature = {{ default 0.7 .Values.models.functionCall.temperature }} +temperature = {{ default .Values.models.answer.temperature .Values.models.functionCall.temperature }} [check] enable = false diff --git a/deploy/chart/euler_copilot/configs/framework/config.toml b/deploy/chart/euler_copilot/configs/framework/config.toml index 7d0e1746fc1ff14c9e5662e21fc504f8e039b475..b04699d0ac35a3e4c9e43805f82749ea181c74e5 100644 --- a/deploy/chart/euler_copilot/configs/framework/config.toml +++ b/deploy/chart/euler_copilot/configs/framework/config.toml @@ -52,16 +52,16 @@ half_key3 = '${halfKey3}' jwt_key = '${jwtKey}' [embedding] -provider = '{{ default "openai" .Values.models.embedding.provider }}' +provider = '{{ .Values.models.embedding.provider }}' endpoint = '{{ .Values.models.embedding.endpoint }}' api_key = '{{ .Values.models.embedding.key }}' -model = '{{ default "bge-m3" .Values.models.embedding.name }}' +model = '{{ .Values.models.embedding.name }}' [reranker] -provider = '{{ .Values.models.reranker.provider }}' -endpoint = '{{ .Values.models.reranker.endpoint }}' -api_key = '{{ .Values.models.reranker.key }}' -model = '{{ default "BAAI/bge-reranker-v2-m3" .Values.models.reranker.name }}' +provider = '{{ default "" .Values.models.reranker.provider }}' +endpoint = '{{ default "" .Values.models.reranker.endpoint }}' +api_key = '{{ default "" .Values.models.reranker.key }}' +model = '{{ default "" .Values.models.reranker.name }}' [rag] rag_service = 'http://rag-service.{{ .Release.Namespace }}.svc.cluster.local:9988' @@ -99,11 +99,12 @@ max_tokens = {{ default 8192 .Values.models.answer.maxTokens }} temperature = {{ default 0.7 .Values.models.answer.temperature }} [function_call] +provider = '{{ default .Values.models.answer.provider .Values.models.functionCall.provider }}' endpoint = '{{ default .Values.models.answer.endpoint .Values.models.functionCall.endpoint }}' model = '{{ default .Values.models.answer.name .Values.models.functionCall.name }}' api_key = '{{ default .Values.models.answer.key .Values.models.functionCall.key }}' max_tokens = {{ default .Values.models.answer.maxTokens .Values.models.functionCall.maxTokens }} -temperature = {{ default 0.7 .Values.models.functionCall.temperature }} +temperature = {{ default .Values.models.answer.temperature .Values.models.functionCall.temperature }} [check] enable = false