瀏覽代碼

feat: add retireval_top_n to config in env (#11132)

tags/0.13.0
Cling_o3 11 月之前
父節點
當前提交
f9c2aa7689
No account linked to committer's email address
共有 4 個文件被更改,包括 20 次插入4 次删除
  1. 3
    1
      api/.env.example
  2. 2
    0
      api/configs/feature/__init__.py
  3. 14
    3
      api/core/rag/datasource/retrieval_service.py
  4. 1
    0
      docker/docker-compose.yaml

+ 3
- 1
api/.env.example 查看文件

@@ -411,4 +411,6 @@ POSITION_PROVIDER_EXCLUDES=
# Reset password token expiry minutes
RESET_PASSWORD_TOKEN_EXPIRY_MINUTES=5

CREATE_TIDB_SERVICE_JOB_ENABLED=false
CREATE_TIDB_SERVICE_JOB_ENABLED=false

RETRIEVAL_TOP_N=0

+ 2
- 0
api/configs/feature/__init__.py 查看文件

@@ -626,6 +626,8 @@ class DataSetConfig(BaseSettings):
default=30,
)

RETRIEVAL_TOP_N: int = Field(description="number of retrieval top_n", default=0)


class WorkspaceConfig(BaseSettings):
"""

+ 14
- 3
api/core/rag/datasource/retrieval_service.py 查看文件

@@ -3,6 +3,7 @@ from typing import Optional

from flask import Flask, current_app

from configs import DifyConfig
from core.rag.data_post_processor.data_post_processor import DataPostProcessor
from core.rag.datasource.keyword.keyword_factory import Keyword
from core.rag.datasource.vdb.vector_factory import Vector
@@ -110,8 +111,12 @@ class RetrievalService:
str(dataset.tenant_id), reranking_mode, reranking_model, weights, False
)
all_documents = data_post_processor.invoke(
query=query, documents=all_documents, score_threshold=score_threshold, top_n=top_k
query=query,
documents=all_documents,
score_threshold=score_threshold,
top_n=DifyConfig.RETRIEVAL_TOP_N or top_k,
)

return all_documents

@classmethod
@@ -178,7 +183,10 @@ class RetrievalService:
)
all_documents.extend(
data_post_processor.invoke(
query=query, documents=documents, score_threshold=score_threshold, top_n=len(documents)
query=query,
documents=documents,
score_threshold=score_threshold,
top_n=DifyConfig.RETRIEVAL_TOP_N or len(documents),
)
)
else:
@@ -220,7 +228,10 @@ class RetrievalService:
)
all_documents.extend(
data_post_processor.invoke(
query=query, documents=documents, score_threshold=score_threshold, top_n=len(documents)
query=query,
documents=documents,
score_threshold=score_threshold,
top_n=DifyConfig.RETRIEVAL_TOP_N or len(documents),
)
)
else:

+ 1
- 0
docker/docker-compose.yaml 查看文件

@@ -287,6 +287,7 @@ x-shared-env: &shared-api-worker-env
OCEANBASE_CLUSTER_NAME: ${OCEANBASE_CLUSTER_NAME:-difyai}
OCEANBASE_MEMORY_LIMIT: ${OCEANBASE_MEMORY_LIMIT:-6G}
CREATE_TIDB_SERVICE_JOB_ENABLED: ${CREATE_TIDB_SERVICE_JOB_ENABLED:-false}
RETRIEVAL_TOP_N: ${RETRIEVAL_TOP_N:-0}

services:
# API service

Loading…
取消
儲存