Skip to content

Commit a2bf14a

Browse files
Merge pull request #172 from gomate-community/pipeline
Pipeline
2 parents 1641edd + 60cce21 commit a2bf14a

File tree

20 files changed

+424
-130
lines changed

20 files changed

+424
-130
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Use the official Ubuntu base image
2-
FROM pytorch/pytorch:2.6.0-cuda12.6-cudnn9-runtime
2+
FROM pytorch/pytorch:2.6.0-cuda12.6-cudnn9-devel
33
ENV DEBIAN_FRONTEND=noninteractive
44
ENV CUDA_DEVICE_ORDER=PCI_BUS_ID
55
ENV PYTORCH_NVML_BASED_CUDA_CHECK=1

api/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# 使用默认 .env,再覆盖 RERANKER_NAME
2+
sh start_rag.sh -e RERANKER_NAME=G:/pretrained_models/mteb/bge-reranker-large-v2
3+
4+
5+
docker run --rm \
6+
--env-file /path/to/.env \
7+
-e RERANKER_NAME=G:/pretrained_models/mteb/bge-reranker-large-v2 \
8+
-p 10000:10000 \
9+
-v /g/Projects/TrustRAG:/app \
10+
-w /app/api/rag \
11+
trustrag:v0.1 \
12+
sh -c "PYTHONPATH=/app python main.py"
13+
14+
15+
16+
docker run --rm \
17+
--gpus all \
18+
-p 10000:10000 \
19+
-v /mnt/g/pretrained_models/mteb/bge-reranker-large:/mnt/g/pretrained_models/mteb/bge-reranker-large \
20+
-v .:/app \
21+
-e RERANKER_NAME=/mnt/g/pretrained_models/mteb/bge-reranker-large \
22+
-w /app/api/rag \
23+
trustrag:v0.1 \
24+
sh -c "PYTHONPATH=/app python main.py"

api/rag/.env.example

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
### API server
2+
API_HOST=0.0.0.0
3+
API_PORT=10000
4+
API_URL=http://127.0.0.1:10001
5+
6+
### Upstream LLM service (gomall)
7+
GOMALL_BASE_URL=http://10.208.61.1:32004/api/v1/1504_gomall_qwen3/Qwen3-30B-A3B-Instruct-2507/
8+
GOMALL_API_KEY=sk-xx
9+
10+
### Local rerank service
11+
RERANK_BASE_URL=
12+
RERANK_API_KEY=
13+
14+
### Model configs
15+
LLM_NAME=Qwen3-30B-A3B-Instruct-2507
16+
LLM_PATH=G:/pretrained_models/llm/glm-4-9b-chat
17+
LLM_SERVICE=online
18+
19+
EMBEDDING_NAME=G:/pretrained_models/mteb/bge-large-zh-v1.5
20+
EMBEDDING_PATH=G:/pretrained_models/mteb/bge-large-zh-v1.5
21+
EMBEDDING_SERVICE=local
22+
23+
RERANKER_NAME=G:/pretrained_models/mteb/bge-reranker-large
24+
RERANKER_PATH=G:/pretrained_models/mteb/bge-reranker-large
25+
RERANKER_SERVICE=local
26+
27+
### Paths
28+
DOCS_PATH=G:/Projects/TrustRAG/data/docs
29+
INDEX_PATH=G:/Projects/TrustRAG/examples/retrievers/dense_cache
30+
31+
### Rewriter tool
32+
REWRITER_API_URL=http://10.208.61.1:32004/api/v1/1504_gomall_qwen3/Qwen3-30B-A3B-Instruct-2507/

api/rag/apps/config/__init__.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
#!/usr/bin/env python
2-
# -*- coding:utf-8 _*-
3-
"""
4-
@author:quincy qiang
5-
@license: Apache Licence
6-
@file: __init__.py
7-
@time: 2024/06/13
8-
9-
@software: PyCharm
10-
@description: coding..
11-
"""
1+
from .base_config import RAGSettings
2+
3+
settings = RAGSettings()

api/rag/apps/config/app_config.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,9 @@
11
#!/usr/bin/env python
22
# -*- coding:utf-8 _*-
33
"""
4-
@author:quincy qiang
5-
@license: Apache Licence
6-
@file: app_config.py.py
7-
@time: 2024/06/13
8-
9-
@software: PyCharm
10-
@description: coding..
4+
应用基础配置。
115
"""
12-
import pprint
13-
from typing import ClassVar
14-
15-
pp = pprint.PrettyPrinter(indent=4)
16-
17-
6+
from api.rag.apps.config import settings
187
class AppConfig:
198
"""配置类"""
209
API_V1_STR: str = ""
@@ -37,13 +26,13 @@ class AppConfig:
3726
{"url": "/v2", "description": "测试地址"},
3827
]
3928

40-
WEB_URL: ClassVar[str] = '*'
29+
WEB_URL: str = '*'
4130
# 接口地址
42-
API_URL: ClassVar[str] = 'http://127.0.0.1:10001'
31+
API_URL: str = settings.api_url
4332
# 运行访问的地址
44-
API_HOST: ClassVar[str] = '0.0.0.0'
33+
API_HOST: str = settings.api_host
4534
# 端口
46-
API_PORT: int = 10000
35+
API_PORT: int = settings.api_port
4736

4837
DEBUGGER: bool = True
4938

api/rag/apps/config/base_config.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# from pydantic import BaseSettings
2+
from pydantic import Field
3+
from pydantic_settings import BaseSettings, SettingsConfigDict
4+
5+
6+
class RAGSettings(BaseSettings):
7+
"""Centralized application settings loaded from environment variables."""
8+
9+
# API service
10+
api_host: str = Field(default="0.0.0.0", validation_alias="API_HOST")
11+
api_port: int = Field(default=10000, validation_alias="API_PORT")
12+
api_url: str = Field(default="http://127.0.0.1:10001", validation_alias="API_URL")
13+
14+
# Upstream LLM service (gomall)
15+
gomall_base_url: str = Field(default="http://10.208.61.1:32004/api/v1/1504_gomall_qwen3/Qwen3-30B-A3B-Instruct-2507/", validation_alias="GOMALL_BASE_URL")
16+
gomall_api_key: str = Field(default="", validation_alias="GOMALL_API_KEY")
17+
llm_name: str = Field(default="Qwen3-30B-A3B-Instruct-2507", validation_alias="LLM_NAME")
18+
# Tool specific
19+
rewriter_api_url: str = Field(default="http://10.208.61.1:32004/api/v1/1504_gomall_qwen3/Qwen3-30B-A3B-Instruct-2507/", validation_alias="REWRITER_API_URL")
20+
21+
# Local rerank service
22+
rerank_base_url: str | None = Field(default=None, validation_alias="RERANK_BASE_URL")
23+
rerank_api_key: str | None = Field(default=None, validation_alias="RERANK_API_KEY")
24+
25+
26+
embedding_name: str = Field(default="G:/pretrained_models/mteb/bge-large-zh-v1.5", validation_alias="EMBEDDING_NAME")
27+
embedding_path: str = Field(default="G:/pretrained_models/mteb/bge-large-zh-v1.5", validation_alias="EMBEDDING_PATH")
28+
29+
reranker_name: str = Field(default="G:/pretrained_models/mteb/bge-reranker-large", validation_alias="RERANKER_NAME")
30+
reranker_path: str = Field(default="G:/pretrained_models/mteb/bge-reranker-large", validation_alias="RERANKER_PATH")
31+
# Paths
32+
docs_path: str = Field(default="G:/Projects/TrustRAG/data/docs", validation_alias="DOCS_PATH")
33+
index_path: str = Field(default="G:/Projects/TrustRAG/examples/retrievers/dense_cache", validation_alias="INDEX_PATH")
34+
35+
model_config = SettingsConfigDict(
36+
env_file=".env",
37+
env_file_encoding="utf-8",
38+
case_sensitive=False,
39+
extra="ignore",
40+
)

api/rag/apps/config/rerank_config.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,11 @@
99
@software: PyCharm
1010
@description: coding..
1111
"""
12-
from trustrag.config.config_loader import config
12+
from api.rag.apps.config import settings
1313

14-
class RerankConfig():
14+
class RerankConfig:
1515
"""重排序配置类"""
16-
# 从配置文件加载服务和模型配置
17-
_rerank_service = config.get_config('services.rerank')
18-
_rerank_model = config.get_config('models.reranker')
19-
20-
# 模型名称
21-
model_name_or_path:str = _rerank_model['name']
22-
# 服务 URL
23-
base_url:str = _rerank_service['base_url']
24-
# API 密钥
25-
api_key:str = _rerank_service['api_key']
16+
17+
model_name_or_path: str = settings.reranker_name
18+
base_url: str | None = settings.rerank_base_url
19+
api_key: str | None = settings.rerank_api_key

api/rag/apps/core/judge/views.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,26 @@
1111
"""
1212
import loguru
1313
from fastapi import APIRouter
14-
from trustrag.config.config_loader import config
14+
15+
from api.rag.apps.config import settings
1516
from api.rag.apps.core.judge.bodys import JudgeBody
1617
from api.rag.apps.handle.response.json_response import ApiResponse
1718
from trustrag.modules.judger.bge_judger import BgeJudger, BgeJudgerConfig
1819
from trustrag.modules.judger.chatgpt_judger import OpenaiJudger, OpenaiJudgerConfig
1920

2021
judge_router = APIRouter()
2122

22-
# 加载服务和模型配置
23-
llm_service = config.get_config('services.dmx')
24-
llm_model = config.get_config('models.llm')
25-
rerank_model = config.get_config('models.reranker')
26-
2723
# BGE 判断器配置
2824
judge_config = BgeJudgerConfig(
29-
model_name_or_path=rerank_model['name']
25+
model_name_or_path=settings.reranker_name,
3026
)
3127
bge_judger = BgeJudger(judge_config)
3228

3329
# LLM 判断器配置
3430
judger_config = OpenaiJudgerConfig(
35-
base_url=llm_service['base_url'],
36-
api_key=llm_service['api_key'],
37-
model_name=llm_model['name']
31+
base_url=settings.gomall_base_url,
32+
api_key=settings.gomall_api_key,
33+
model_name=settings.llm_name,
3834
)
3935
openai_judger = OpenaiJudger(judger_config)
4036

api/rag/apps/core/rerank/views.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,18 @@
1212
import loguru
1313
from fastapi import APIRouter
1414

15+
from api.rag.apps.config import settings
1516
from api.rag.apps.core.rerank.bodys import RerankBody
1617
from api.rag.apps.core.rerank.models import Application
1718
from api.rag.apps.handle.response.json_response import UserNotFoundResponse, ApiResponse
1819
from trustrag.modules.reranker.bge_reranker import BgeReranker, BgeRerankerConfig
19-
from trustrag.config.config_loader import config
20-
21-
# from apps.handle.exception.exception import MallException
22-
# from apps.core.config.models import LLMModel
23-
# from tortoise.contrib.pydantic import pydantic_model_creator
2420

2521
rerank_router = APIRouter()
26-
# 从配置文件加载重排序配置
27-
rerank_service = config.get_config('services.rerank')
28-
rerank_model = config.get_config('models.reranker')
2922

3023
reranker_config = BgeRerankerConfig(
31-
model_name_or_path=rerank_model['name'],
32-
api_key=rerank_service['api_key'],
33-
url=rerank_service['base_url']
24+
model_name_or_path=settings.reranker_name,
25+
api_key=settings.rerank_api_key,
26+
url=settings.rerank_base_url,
3427
)
3528
bge_reranker = BgeReranker(reranker_config)
3629
# Create

api/rag/apps/core/rewrite/views.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,18 @@
1212
import loguru
1313
from fastapi import APIRouter
1414

15+
from api.rag.apps.config import settings
1516
from api.rag.apps.core.rewrite.bodys import RewriteBody
1617
from api.rag.apps.handle.response.json_response import ApiResponse
17-
from trustrag.modules.rewriter.openai_rewrite import OpenaiRewriter,OpenaiRewriterConfig
18+
from trustrag.modules.rewriter.openai_rewrite import OpenaiRewriter, OpenaiRewriterConfig
1819

1920

2021
rewriter_router = APIRouter()
2122

2223
rewriter_config = OpenaiRewriterConfig(
23-
api_url="http://10.208.63.29:8888"
24+
base_url=settings.rewriter_api_url,
25+
api_key=settings.gomall_api_key,
26+
model_name=settings.llm_name,
2427
)
2528
openai_rewriter = OpenaiRewriter(rewriter_config)
2629

0 commit comments

Comments
 (0)