From 06419a8ac4be73be8d1bed13448be6859edcccfc Mon Sep 17 00:00:00 2001 From: szlele <595128841@qq.com> Date: Thu, 12 Jun 2025 10:44:47 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- llamacpp-embedding-rerank-server/README.md | 27 ++++++++++++++ .../docker-compose.yaml | 36 +++++++++++++++++++ .../.gitignore | 0 .../app/embedding_api.py | 0 .../app/embedding_onnx_provider.py | 0 .../app/log_config.py | 0 .../app/main.py | 0 .../app/model_service.py | 0 .../app/rerank_api.py | 0 .../app/rerank_onnx_provider.py | 0 .../requirements.txt | 0 .../run.sh | 2 +- .../test/embedding_client.py | 0 .../test/http_client.py | 0 .../test/model_test.py | 0 .../test/rerank_client.py | 0 16 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 llamacpp-embedding-rerank-server/README.md create mode 100644 llamacpp-embedding-rerank-server/docker-compose.yaml rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/.gitignore (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/app/embedding_api.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/app/embedding_onnx_provider.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/app/log_config.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/app/main.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/app/model_service.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/app/rerank_api.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/app/rerank_onnx_provider.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/requirements.txt (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/run.sh (69%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/test/embedding_client.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/test/http_client.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/test/model_test.py (100%) rename {server/embedding-rerank-server => onnxruntime-embedding-rerank-server}/test/rerank_client.py (100%) diff --git a/llamacpp-embedding-rerank-server/README.md b/llamacpp-embedding-rerank-server/README.md new file mode 100644 index 0000000..478f3e7 --- /dev/null +++ b/llamacpp-embedding-rerank-server/README.md @@ -0,0 +1,27 @@ +# llama.cpp 部署 Embedding和Rerank模型 + +## 下载模型 + +`Embedding`: bge-m3 + +`Rerank`: bge-reranker-v2-m3 + +```shell +cd /home +mkdir models +uv venv +uv tool install modescope + +modelscope download --model gpustack/bge-m3-GGUF bge-m3-Q8_0.gguf --local_dir ./bge-m3-GGUF + +modescope modelscope download --model gpustack/bge-reranker-v2-m3-GGUF bge-reranker-v2-m3-Q8_0.gguf --local_dir ./bge-reranker-v2-m3-GGUF + +``` + +## 部署模型 + +```shell +docker compose up -d +``` + +Embedding和Rerank模型服务支持标准OpenAI接口规范 \ No newline at end of file diff --git a/llamacpp-embedding-rerank-server/docker-compose.yaml b/llamacpp-embedding-rerank-server/docker-compose.yaml new file mode 100644 index 0000000..9b1b807 --- /dev/null +++ b/llamacpp-embedding-rerank-server/docker-compose.yaml @@ -0,0 +1,36 @@ +services: + llamacpp-embedding-server: + image: ghcr.io/ggml-org/llama.cpp:server + container_name: llamacpp-embedding-server + command: --embedding --pooling mean --verbose-prompt + restart: always + ports: + - 8081:8080 + volumes: + - /home/models/bge-m3-GGUF:/models + environment: + LLAMA_ARG_MODEL: /models/bge-m3-Q8_0.gguf + LLAMA_ARG_CTX_SIZE: 8192 + LLAMA_ARG_N_PARALLEL: 8 + LLAMA_ARG_PORT: 8080 + LLAMA_ARG_UBATCH: 8192 + LLAMA_ARG_N_GPU_LAYERS_DRAFT: 0 + + llamacpp-rerank-server: + image: ghcr.io/ggml-org/llama.cpp:server + container_name: llamacpp-rerank-server + command: --reranking --pooling rank + restart: always + ports: + - 8082:8080 + volumes: + - /home/models/bge-reranker-v2-m3-GGUF:/models + environment: + LLAMA_ARG_MODEL: /models/bge-reranker-v2-m3-Q8_0.gguf + LLAMA_ARG_CTX_SIZE: 8192 + LLAMA_ARG_N_PARALLEL: 8 + LLAMA_ARG_PORT: 8080 + LLAMA_ARG_BATCH: 8192 + LLAMA_ARG_UBATCH: 8192 + LLAMA_ARG_FLASH_ATTN: enable + LLAMA_ARG_N_GPU_LAYERS_DRAFT: 0 diff --git a/server/embedding-rerank-server/.gitignore b/onnxruntime-embedding-rerank-server/.gitignore similarity index 100% rename from server/embedding-rerank-server/.gitignore rename to onnxruntime-embedding-rerank-server/.gitignore diff --git a/server/embedding-rerank-server/app/embedding_api.py b/onnxruntime-embedding-rerank-server/app/embedding_api.py similarity index 100% rename from server/embedding-rerank-server/app/embedding_api.py rename to onnxruntime-embedding-rerank-server/app/embedding_api.py diff --git a/server/embedding-rerank-server/app/embedding_onnx_provider.py b/onnxruntime-embedding-rerank-server/app/embedding_onnx_provider.py similarity index 100% rename from server/embedding-rerank-server/app/embedding_onnx_provider.py rename to onnxruntime-embedding-rerank-server/app/embedding_onnx_provider.py diff --git a/server/embedding-rerank-server/app/log_config.py b/onnxruntime-embedding-rerank-server/app/log_config.py similarity index 100% rename from server/embedding-rerank-server/app/log_config.py rename to onnxruntime-embedding-rerank-server/app/log_config.py diff --git a/server/embedding-rerank-server/app/main.py b/onnxruntime-embedding-rerank-server/app/main.py similarity index 100% rename from server/embedding-rerank-server/app/main.py rename to onnxruntime-embedding-rerank-server/app/main.py diff --git a/server/embedding-rerank-server/app/model_service.py b/onnxruntime-embedding-rerank-server/app/model_service.py similarity index 100% rename from server/embedding-rerank-server/app/model_service.py rename to onnxruntime-embedding-rerank-server/app/model_service.py diff --git a/server/embedding-rerank-server/app/rerank_api.py b/onnxruntime-embedding-rerank-server/app/rerank_api.py similarity index 100% rename from server/embedding-rerank-server/app/rerank_api.py rename to onnxruntime-embedding-rerank-server/app/rerank_api.py diff --git a/server/embedding-rerank-server/app/rerank_onnx_provider.py b/onnxruntime-embedding-rerank-server/app/rerank_onnx_provider.py similarity index 100% rename from server/embedding-rerank-server/app/rerank_onnx_provider.py rename to onnxruntime-embedding-rerank-server/app/rerank_onnx_provider.py diff --git a/server/embedding-rerank-server/requirements.txt b/onnxruntime-embedding-rerank-server/requirements.txt similarity index 100% rename from server/embedding-rerank-server/requirements.txt rename to onnxruntime-embedding-rerank-server/requirements.txt diff --git a/server/embedding-rerank-server/run.sh b/onnxruntime-embedding-rerank-server/run.sh similarity index 69% rename from server/embedding-rerank-server/run.sh rename to onnxruntime-embedding-rerank-server/run.sh index d05160a..851a96c 100644 --- a/server/embedding-rerank-server/run.sh +++ b/onnxruntime-embedding-rerank-server/run.sh @@ -1,4 +1,4 @@ -nohup python -u app/main.py > logs/app.log 2>&1 & +nohup python -u app/main.py > app.log 2>&1 & PID1=$! # 生成close.sh脚本,写入kill命令 diff --git a/server/embedding-rerank-server/test/embedding_client.py b/onnxruntime-embedding-rerank-server/test/embedding_client.py similarity index 100% rename from server/embedding-rerank-server/test/embedding_client.py rename to onnxruntime-embedding-rerank-server/test/embedding_client.py diff --git a/server/embedding-rerank-server/test/http_client.py b/onnxruntime-embedding-rerank-server/test/http_client.py similarity index 100% rename from server/embedding-rerank-server/test/http_client.py rename to onnxruntime-embedding-rerank-server/test/http_client.py diff --git a/server/embedding-rerank-server/test/model_test.py b/onnxruntime-embedding-rerank-server/test/model_test.py similarity index 100% rename from server/embedding-rerank-server/test/model_test.py rename to onnxruntime-embedding-rerank-server/test/model_test.py diff --git a/server/embedding-rerank-server/test/rerank_client.py b/onnxruntime-embedding-rerank-server/test/rerank_client.py similarity index 100% rename from server/embedding-rerank-server/test/rerank_client.py rename to onnxruntime-embedding-rerank-server/test/rerank_client.py From ff0407f362c80ed86b5c0947938f1d564606bc6a Mon Sep 17 00:00:00 2001 From: szlele <595128841@qq.com> Date: Thu, 12 Jun 2025 11:04:23 +0800 Subject: [PATCH 2/6] rag-mcp-server --- rag-mcp-server | 1 + 1 file changed, 1 insertion(+) create mode 160000 rag-mcp-server diff --git a/rag-mcp-server b/rag-mcp-server new file mode 160000 index 0000000..4da900e --- /dev/null +++ b/rag-mcp-server @@ -0,0 +1 @@ +Subproject commit 4da900e3a77b9382e3eb0e8f363830571ceae1e8 From 11b9f6677bea838ecf6d397a26e8c4bf01b73dbe Mon Sep 17 00:00:00 2001 From: szlele <595128841@qq.com> Date: Thu, 12 Jun 2025 11:07:33 +0800 Subject: [PATCH 3/6] rag-mivus-mcp-server --- rag-mcp-server | 1 - rag-milvus-mcp-server/.env | 4 + rag-milvus-mcp-server/.gitignore | 10 + rag-milvus-mcp-server/.python-version | 1 + rag-milvus-mcp-server/README.md | 0 .../docker-compose-milvus.yaml | 66 ++ rag-milvus-mcp-server/embedding.py | 22 + rag-milvus-mcp-server/http_json_client.py | 31 + rag-milvus-mcp-server/main.py | 18 + rag-milvus-mcp-server/milvus.py | 107 +++ rag-milvus-mcp-server/pyproject.toml | 11 + rag-milvus-mcp-server/rerank.py | 34 + rag-milvus-mcp-server/server.py | 49 ++ rag-milvus-mcp-server/setting.py | 36 + rag-milvus-mcp-server/test.py | 8 + rag-milvus-mcp-server/uv.lock | 671 ++++++++++++++++++ 16 files changed, 1068 insertions(+), 1 deletion(-) delete mode 160000 rag-mcp-server create mode 100644 rag-milvus-mcp-server/.env create mode 100644 rag-milvus-mcp-server/.gitignore create mode 100644 rag-milvus-mcp-server/.python-version create mode 100644 rag-milvus-mcp-server/README.md create mode 100644 rag-milvus-mcp-server/docker-compose-milvus.yaml create mode 100644 rag-milvus-mcp-server/embedding.py create mode 100644 rag-milvus-mcp-server/http_json_client.py create mode 100644 rag-milvus-mcp-server/main.py create mode 100644 rag-milvus-mcp-server/milvus.py create mode 100644 rag-milvus-mcp-server/pyproject.toml create mode 100644 rag-milvus-mcp-server/rerank.py create mode 100644 rag-milvus-mcp-server/server.py create mode 100644 rag-milvus-mcp-server/setting.py create mode 100644 rag-milvus-mcp-server/test.py create mode 100644 rag-milvus-mcp-server/uv.lock diff --git a/rag-mcp-server b/rag-mcp-server deleted file mode 160000 index 4da900e..0000000 --- a/rag-mcp-server +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4da900e3a77b9382e3eb0e8f363830571ceae1e8 diff --git a/rag-milvus-mcp-server/.env b/rag-milvus-mcp-server/.env new file mode 100644 index 0000000..25d9931 --- /dev/null +++ b/rag-milvus-mcp-server/.env @@ -0,0 +1,4 @@ + + +# Enable or disable security authorization +MILVUS_AUTHORIZATION_ENABLED=true \ No newline at end of file diff --git a/rag-milvus-mcp-server/.gitignore b/rag-milvus-mcp-server/.gitignore new file mode 100644 index 0000000..505a3b1 --- /dev/null +++ b/rag-milvus-mcp-server/.gitignore @@ -0,0 +1,10 @@ +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# Virtual environments +.venv diff --git a/rag-milvus-mcp-server/.python-version b/rag-milvus-mcp-server/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/rag-milvus-mcp-server/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/rag-milvus-mcp-server/README.md b/rag-milvus-mcp-server/README.md new file mode 100644 index 0000000..e69de29 diff --git a/rag-milvus-mcp-server/docker-compose-milvus.yaml b/rag-milvus-mcp-server/docker-compose-milvus.yaml new file mode 100644 index 0000000..8896c06 --- /dev/null +++ b/rag-milvus-mcp-server/docker-compose-milvus.yaml @@ -0,0 +1,66 @@ +services: + # Milvus vector database services + milvus-etcd: + container_name: milvus-etcd + image: quay.io/coreos/etcd:v3.5.5 + environment: + ETCD_AUTO_COMPACTION_MODE: ${ETCD_AUTO_COMPACTION_MODE:-revision} + ETCD_AUTO_COMPACTION_RETENTION: ${ETCD_AUTO_COMPACTION_RETENTION:-1000} + ETCD_QUOTA_BACKEND_BYTES: ${ETCD_QUOTA_BACKEND_BYTES:-4294967296} + ETCD_SNAPSHOT_COUNT: ${ETCD_SNAPSHOT_COUNT:-50000} + volumes: + - ./volumes/milvus/etcd:/etcd + command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd + healthcheck: + test: [ 'CMD', 'etcdctl', 'endpoint', 'health' ] + interval: 30s + timeout: 20s + retries: 3 + networks: + - milvus + + milvus-minio: + container_name: milvus-minio + image: minio/minio:RELEASE.2023-03-20T20-16-18Z + environment: + MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin} + MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin} + volumes: + - ./volumes/milvus/minio:/minio_data + command: minio server /minio_data --console-address ":9001" + healthcheck: + test: [ 'CMD', 'curl', '-f', 'http://localhost:9000/minio/health/live' ] + interval: 30s + timeout: 20s + retries: 3 + networks: + - milvus + + milvus-standalone: + container_name: milvus-standalone + image: milvusdb/milvus:v2.5.0-beta + command: [ 'milvus', 'run', 'standalone' ] + environment: + ETCD_ENDPOINTS: ${ETCD_ENDPOINTS:-milvus-etcd:2379} + MINIO_ADDRESS: ${MINIO_ADDRESS:-milvus-minio:9000} + common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true} + volumes: + - ./volumes/milvus/milvus:/var/lib/milvus + healthcheck: + test: [ 'CMD', 'curl', '-f', 'http://localhost:9091/healthz' ] + interval: 30s + start_period: 90s + timeout: 20s + retries: 3 + depends_on: + - etcd + - minio + ports: + - 19530:19530 + - 9091:9091 + networks: + - milvus + +networks: + milvus: + driver: bridge \ No newline at end of file diff --git a/rag-milvus-mcp-server/embedding.py b/rag-milvus-mcp-server/embedding.py new file mode 100644 index 0000000..bf90cf7 --- /dev/null +++ b/rag-milvus-mcp-server/embedding.py @@ -0,0 +1,22 @@ +from abc import ABC, abstractmethod +from typing import Union,List +from http_json_client import HTTPJSONClient + +class EmbeddingClient(ABC,HTTPJSONClient): + + @abstractmethod + def text_embedding(self, text: Union[str,List[str]]) -> Union[List,List[List]]: + pass + +class OpenAIEmbeddingClient(EmbeddingClient): + + def __init__(self,base_url: str): + super().__init__(base_url) + self.endpoint = "/v1/embeddings" + + def text_embedding(self, text: Union[str,List[str]]) -> Union[List,List[List]]: + result = self.post(self.endpoint,data= {"input":text}) + data = result['data'] + if isinstance(text,List): + return [dd['embedding'] for dd in data] + return data[0]['embedding'] \ No newline at end of file diff --git a/rag-milvus-mcp-server/http_json_client.py b/rag-milvus-mcp-server/http_json_client.py new file mode 100644 index 0000000..387428a --- /dev/null +++ b/rag-milvus-mcp-server/http_json_client.py @@ -0,0 +1,31 @@ +from typing import Dict,Any +import requests + + +class HTTPJSONClient: + + def __init__(self,base_url: str): + self.base_url = base_url + self.session = requests.Session() + self.session.headers.update({ + "Content-Type": "application/json", + "Accept": "application/json" + }) + + def post(self, endpoint: str, data: Dict[str, Any]) -> Dict[str, Any]: + base_url = self.base_url + if endpoint.startswith("/"): + endpoint = endpoint[1:] + if base_url.endswith("/"): + base_url = base_url[:-1] + + url = f"{base_url}/{endpoint}" + try: + response = self.session.post(url, json=data) + return self._handle_response(response) + except requests.RequestException as e: + raise ValueError(f"Request failed: {str(e)}") + + def _handle_response(self, response: requests.Response) -> Dict[str, Any]: + response.raise_for_status() + return response.json() \ No newline at end of file diff --git a/rag-milvus-mcp-server/main.py b/rag-milvus-mcp-server/main.py new file mode 100644 index 0000000..c65a573 --- /dev/null +++ b/rag-milvus-mcp-server/main.py @@ -0,0 +1,18 @@ +import argparse +from dotenv import load_dotenv +from server import mcp + +def parse_arguments(): + # 解析命令行参数 + parser = argparse.ArgumentParser(description="Rag-Mcp-Server") + parser.add_argument("--transport", choices=["stdio", "sse"], default="sse") + + return parser.parse_args() + +if __name__ == "__main__": + # 加载.env文件 + load_dotenv() + # 解析命令行参数 + args = parse_arguments() + mcp.run(transport=args.transport) + diff --git a/rag-milvus-mcp-server/milvus.py b/rag-milvus-mcp-server/milvus.py new file mode 100644 index 0000000..7c862c2 --- /dev/null +++ b/rag-milvus-mcp-server/milvus.py @@ -0,0 +1,107 @@ +from pymilvus import DataType, MilvusClient +from pydantic import BaseModel +from pymilvus.milvus_client import IndexParams +from pymilvus.orm.schema import CollectionSchema +from typing import Any, Optional,Dict,List +from setting import MilvusSettings,RagSettings +from embedding import EmbeddingClient + +Metadata = Dict[str, Any] + +class Entry(BaseModel): + + content: str + metadata: Optional[Metadata] = None + +class MilvusConnector: + def __init__(self, + milvus_settings: MilvusSettings, + embedding_client: EmbeddingClient, + rag_settings: Optional[RagSettings] = None): + # 创建MilvusClient + self.client = MilvusClient(uri=milvus_settings.uri, + user=milvus_settings.user, + password=milvus_settings.password, + token=milvus_settings.token, + db_name=milvus_settings.db_name) + + self.embedding_client = embedding_client + self.collection_name = rag_settings.collection_name + if rag_settings and not self.has_collection(rag_settings.collection_name): + # 定义schema,默认已存在id,vector字段,这里只需要定义document字段 + schema = CollectionSchema() + schema.add_field("document", DataType.VARCHAR) + schema.add_field("metadata", DataType.JSON, nullable=True) + # 定义index + index_params = IndexParams() + index_params.add_index("vector","AUTOINDEX","vector_index") + self.create_collection(collection=rag_settings.collection_name, + dim=rag_settings.vector_dim, + schema= schema, + index_params=index_params + ) + + async def has_collection(self,collection_name: str) -> list[str]: + """查询是否存在collection""" + try: + return self.client.has_collection(collection_name) + except Exception as e: + raise ValueError(f"Failed to list collections: {str(e)}") + + async def create_collection(self, collection_name: str, dim: int = 128, schema: Optional[CollectionSchema] = None, index_params: Optional[IndexParams] = None,) -> bool: + """从指定的schema创建collection""" + try: + # 检查collection是否已存在 + if self.has_collection(collection_name): + raise ValueError(f"Collection '{collection_name}' already exists") + # 创建collection + self.client.create_collection( + collection_name=collection_name, + dimension=dim, + auto_id=True, + schema=schema, + index_params = index_params, + consistency_level = "Strong", + ) + return True + except Exception as e: + raise ValueError(f"Failed to create collection: {str(e)}") + + async def insert_data(self, entry: Entry) -> dict[str, Any]: + """插入数据到collection中""" + try: + vector = self.embedding_client.text_embedding(entry.content) + data = { + "document": entry.content, + "metadata": entry.metadata, + "vector": vector + } + return self.client.insert(collection_name=self.collection_name, data=data) + except Exception as e: + raise ValueError(f"Insert failed: {str(e)}") + + async def search_collection(self, query_text: str, top_n: int = 5, score:float = 0.3) -> list[dict]: + """指定collection进行文本搜索""" + search_params = {"metric_type": "COSINE", "params": {"nprobe": 10}} + vector_data = self.embedding_client.text_embedding(query_text) + try: + result:List[List[dict]] = self.client.search( + collection_name=self.collection_name, + data=vector_data, + anns_field="vector", + search_params=search_params, + limit=20, + output_fields=["document"], + ) + except Exception as e: + raise ValueError(f"Vector search failed: {str(e)}") + + @classmethod + async def from_settings(cls,milvus_settings: MilvusSettings,rag_settings: RagSettings): + return cls( + + ) + +class MilvusContext: + def __init__(self, connector: MilvusConnector): + self.connector = connector \ No newline at end of file diff --git a/rag-milvus-mcp-server/pyproject.toml b/rag-milvus-mcp-server/pyproject.toml new file mode 100644 index 0000000..bc2fd35 --- /dev/null +++ b/rag-milvus-mcp-server/pyproject.toml @@ -0,0 +1,11 @@ +[project] +name = "rag-mcp-server" +version = "0.1.0" +description = "MCP server for retrieving context from a milvus vector database" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "mcp[cli]>=1.9.3", + "pymilvus>=2.5.10", + "requests>=2.32.3", +] diff --git a/rag-milvus-mcp-server/rerank.py b/rag-milvus-mcp-server/rerank.py new file mode 100644 index 0000000..63ecbd3 --- /dev/null +++ b/rag-milvus-mcp-server/rerank.py @@ -0,0 +1,34 @@ +from abc import ABC, abstractmethod +from typing import Dict,Any,List +from http_json_client import HTTPJSONClient + +class RerankClient(ABC,HTTPJSONClient): + + @abstractmethod + def documents_rerank(self, query:str, documents: List[str], min_score:float) -> List[Dict[str, Any]]: + pass + +class OpenAIRerankClient(RerankClient): + + def __init__(self,base_url: str): + super().__init__(base_url) + self.endpoint = "/v1/rerank" + + def documents_rerank(self, query:str, documents: List[str]) -> List[Dict[str, Any]]: + + result = self.post(self.endpoint,data= {"query": query, "documents": documents}) + return result['results'] + +""" +{ + 'model': 'gpt-3.5-turbo', + 'object': 'list', + 'usage': {'prompt_tokens': 246, 'total_tokens': 246}, + 'results': [ + {'index': 0, 'relevance_score': -3.395951271057129}, + {'index': 1, 'relevance_score': -1.8673471212387085}, + {'index': 2, 'relevance_score': 8.277612686157227}, + {'index': 3, 'relevance_score': -11.033196449279785} + ] +} +""" \ No newline at end of file diff --git a/rag-milvus-mcp-server/server.py b/rag-milvus-mcp-server/server.py new file mode 100644 index 0000000..b6868f3 --- /dev/null +++ b/rag-milvus-mcp-server/server.py @@ -0,0 +1,49 @@ +import json +from typing import AsyncIterator, Optional, List +from contextlib import asynccontextmanager +from mcp.server.fastmcp import Context, FastMCP +from milvus import MilvusContext,MilvusConnector,Metadata,Entry +from setting import TOOL_STORE_DESCRIPTION,TOOL_SEARCH_DESCRIPTION + +@asynccontextmanager +async def server_lifespan(server: FastMCP) -> AsyncIterator[MilvusContext]: + """Milvus 连接 生命周期管理""" + config = server.config + + connector = MilvusConnector( + uri=config.get("milvus_uri", "http://localhost:19530"), + token=config.get("milvus_token"), + db_name=config.get("db_name", "default"), + ) + + try: + yield MilvusContext(connector) + finally: + pass + +mcp = FastMCP("Rag-Mcp-Server", lifespan=server_lifespan) + +@mcp.tool(name="milvus-store", description=TOOL_STORE_DESCRIPTION) +async def store(ctx: Context, information: str, metadata: Optional[Metadata] = None,) -> str: + connector:MilvusConnector = ctx.request_context.lifespan_context.connector + entry = Entry(content=information, metadata=metadata) + connector.insert_data(entry) + return f"Remembered: {information}" + + +@mcp.tool(name="milvus-search", description=TOOL_SEARCH_DESCRIPTION) +async def search(ctx: Context, query: str, top_n: int = 5, score:float = 0.3) -> List[str]: + connector:MilvusConnector = ctx.request_context.lifespan_context.connector + + entries = connector.search_collection(query, top_n, score) + if not entries and len(entries) > 0: + return [f"No information searched for the query '{query}'"] + + content = [f"Results for the query '{query}':"] + for entry in entries: + # 生成一个xml格式的结果,让LLM模型更容易解析 + entry_metadata = json.dumps(entry.metadata) if entry.metadata else "" + content.append(f"{entry.content}{entry_metadata}") + return content + + diff --git a/rag-milvus-mcp-server/setting.py b/rag-milvus-mcp-server/setting.py new file mode 100644 index 0000000..cea66fe --- /dev/null +++ b/rag-milvus-mcp-server/setting.py @@ -0,0 +1,36 @@ +from pydantic import Field +from pydantic_settings import BaseSettings +from typing import Optional + +TOOL_STORE_DESCRIPTION = """ +将文档存储到Milvus以供后续检索。 + +输入参数: +1. 'information' 参数应包含自然语言的文档内容,文本长度小于8000。 +2. 'metadata' 参数是一个Python字典,键为字符串,可以存储与该文档相关的元数据。 +""" + +TOOL_SEARCH_DESCRIPTION = """ +从Milvus中使用自然语言形式的文本来搜索相似性文档。 + +输入参数: +1. 'query' 参数应该描述你正在寻找的内容,文本长度小于8000,该工具将返回最相关的文档。 +2. 'top_n' 参数:要返回相似度最高的前n个文档,字段类型是int,默认值:5。 +2. 'score' 参数:要返回相似度大于或等于score的文档,字段类型是float,默认值:0.3。 +""" + +class MilvusSettings(BaseSettings): + """ + Configuration for Tablestore. + """ + + uri: Optional[str] = Field(default= 'http://localhost:19530',validation_alias="MILVUS_URI") + user: Optional[str] = Field(default= '',validation_alias="MILVUS_USER") + password: Optional[str] = Field(default= '',validation_alias="MILVUS_PASSWORD") + token: Optional[str] = Field(default= '',validation_alias="MILVUS_TOKEN") + db_name: Optional[str] = Field(default= 'default',validation_alias="MILVUS_DB_NAME") + +class RagSettings(BaseSettings): + collection_name: str = Field(default="rag_mcp_server", validation_alias="RAG_COLLECTION_NAME") + vector_dim: int = Field(default=768, validation_alias="RAG_VECTOR_DIMENSION") + \ No newline at end of file diff --git a/rag-milvus-mcp-server/test.py b/rag-milvus-mcp-server/test.py new file mode 100644 index 0000000..e23cfd9 --- /dev/null +++ b/rag-milvus-mcp-server/test.py @@ -0,0 +1,8 @@ +from embedding import EmbeddingClient,OpenAIEmbeddingClient + +client:EmbeddingClient = OpenAIEmbeddingClient("http://192.168.0.160:8081") + +if __name__ == "__main__": + text = ["Hello World","China"] + res = client.text_embedding(text) + print(res) diff --git a/rag-milvus-mcp-server/uv.lock b/rag-milvus-mcp-server/uv.lock new file mode 100644 index 0000000..1b139ab --- /dev/null +++ b/rag-milvus-mcp-server/uv.lock @@ -0,0 +1,671 @@ +version = 1 +revision = 2 +requires-python = ">=3.12" + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53" }, +] + +[[package]] +name = "anyio" +version = "4.9.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/95/7d/4c1bd541d4dffa1b52bd83fb8527089e097a106fc90b467a7313b105f840/anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c" }, +] + +[[package]] +name = "certifi" +version = "2025.4.26" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095/charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cbb868e4595ee30/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/58/aa/8904b84bc8084ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c0e23b0562d64af46a06aae4/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a/charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc/charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0" }, +] + +[[package]] +name = "click" +version = "8.2.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" }, +] + +[[package]] +name = "grpcio" +version = "1.67.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/20/53/d9282a66a5db45981499190b77790570617a604a38f3d103d0400974aeb5/grpcio-1.67.1.tar.gz", hash = "sha256:3dc2ed4cabea4dc14d5e708c2b426205956077cc5de419b4d4079315017e9732" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6e/25/6f95bd18d5f506364379eabc0d5874873cc7dbdaf0757df8d1e82bc07a88/grpcio-1.67.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:267d1745894200e4c604958da5f856da6293f063327cb049a51fe67348e4f953" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/10/3f/d79e32e5d0354be33a12db2267c66d3cfeff700dd5ccdd09fd44a3ff4fb6/grpcio-1.67.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:85f69fdc1d28ce7cff8de3f9c67db2b0ca9ba4449644488c1e0303c146135ddb" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/21/f2/36fbc14b3542e3a1c20fb98bd60c4732c55a44e374a4eb68f91f28f14aab/grpcio-1.67.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:f26b0b547eb8d00e195274cdfc63ce64c8fc2d3e2d00b12bf468ece41a0423a0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0d/af/bbc1305df60c4e65de8c12820a942b5e37f9cf684ef5e49a63fbb1476a73/grpcio-1.67.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4422581cdc628f77302270ff839a44f4c24fdc57887dc2a45b7e53d8fc2376af" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/92/cf/1d4c3e93efa93223e06a5c83ac27e32935f998bc368e276ef858b8883154/grpcio-1.67.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7616d2ded471231c701489190379e0c311ee0a6c756f3c03e6a62b95a7146e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ae/ca/26195b66cb253ac4d5ef59846e354d335c9581dba891624011da0e95d67b/grpcio-1.67.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8a00efecde9d6fcc3ab00c13f816313c040a28450e5e25739c24f432fc6d3c75" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d1/94/16550ad6b3f13b96f0856ee5dfc2554efac28539ee84a51d7b14526da985/grpcio-1.67.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:699e964923b70f3101393710793289e42845791ea07565654ada0969522d0a38" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/33/0d/4c3b2587e8ad7f121b597329e6c2620374fccbc2e4e1aa3c73ccc670fde4/grpcio-1.67.1-cp312-cp312-win32.whl", hash = "sha256:4e7b904484a634a0fff132958dabdb10d63e0927398273917da3ee103e8d1f78" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/7d/36/0c03e2d80db69e2472cf81c6123aa7d14741de7cf790117291a703ae6ae1/grpcio-1.67.1-cp312-cp312-win_amd64.whl", hash = "sha256:5721e66a594a6c4204458004852719b38f3d5522082be9061d6510b455c90afc" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/12/d2/2f032b7a153c7723ea3dea08bffa4bcaca9e0e5bdf643ce565b76da87461/grpcio-1.67.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:aa0162e56fd10a5547fac8774c4899fc3e18c1aa4a4759d0ce2cd00d3696ea6b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d0/ae/ea2ff6bd2475a082eb97db1104a903cf5fc57c88c87c10b3c3f41a184fc0/grpcio-1.67.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:beee96c8c0b1a75d556fe57b92b58b4347c77a65781ee2ac749d550f2a365dc1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/07/62/646be83d1a78edf8d69b56647327c9afc223e3140a744c59b25fbb279c3b/grpcio-1.67.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:a93deda571a1bf94ec1f6fcda2872dad3ae538700d94dc283c672a3b508ba3af" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d0/25/71513d0a1b2072ce80d7f5909a93596b7ed10348b2ea4fdcbad23f6017bf/grpcio-1.67.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e6f255980afef598a9e64a24efce87b625e3e3c80a45162d111a461a9f92955" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/76/9a/d21236297111052dcb5dc85cd77dc7bf25ba67a0f55ae028b2af19a704bc/grpcio-1.67.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e838cad2176ebd5d4a8bb03955138d6589ce9e2ce5d51c3ada34396dbd2dba8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2d/fe/70b1da9037f5055be14f359026c238821b9bcf6ca38a8d760f59a589aacd/grpcio-1.67.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a6703916c43b1d468d0756c8077b12017a9fcb6a1ef13faf49e67d20d7ebda62" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/74/0d/7df509a2cd2a54814598caf2fb759f3e0b93764431ff410f2175a6efb9e4/grpcio-1.67.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:917e8d8994eed1d86b907ba2a61b9f0aef27a2155bca6cbb322430fc7135b7bb" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0a/08/bc3b0155600898fd10f16b79054e1cca6cb644fa3c250c0fe59385df5e6f/grpcio-1.67.1-cp313-cp313-win32.whl", hash = "sha256:e279330bef1744040db8fc432becc8a727b84f456ab62b744d3fdb83f327e121" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/5a/96/44759eca966720d0f3e1b105c43f8ad4590c97bf8eb3cd489656e9590baa/grpcio-1.67.1-cp313-cp313-win_amd64.whl", hash = "sha256:fa0c739ad8b1996bd24823950e3cb5152ae91fca1c09cc791190bf1627ffefba" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad" }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/4c/60/8f4281fa9bbf3c8034fd54c0e7412e66edbab6bc74c4996bd616f8d0406e/httpx-sse-0.4.0.tar.gz", hash = "sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e1/9b/a181f281f65d776426002f330c31849b86b31fc9d848db62e16f03ff739f/httpx_sse-0.4.0-py3-none-any.whl", hash = "sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1" }, +] + +[[package]] +name = "mcp" +version = "1.9.3" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "python-multipart" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f2/df/8fefc0c6c7a5c66914763e3ff3893f9a03435628f6625d5e3b0dc45d73db/mcp-1.9.3.tar.gz", hash = "sha256:587ba38448e81885e5d1b84055cfcc0ca56d35cd0c58f50941cab01109405388" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/79/45/823ad05504bea55cb0feb7470387f151252127ad5c72f8882e8fe6cf5c0e/mcp-1.9.3-py3-none-any.whl", hash = "sha256:69b0136d1ac9927402ed4cf221d4b8ff875e7132b0b06edd446448766f34f9b9" }, +] + +[package.optional-dependencies] +cli = [ + { name = "python-dotenv" }, + { name = "typer" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8" }, +] + +[[package]] +name = "milvus-lite" +version = "2.4.12" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "tqdm" }, +] +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/64/3a/110e46db650ced604f97307e48e353726cfa6d26b1bf72acb81bbf07ecbd/milvus_lite-2.4.12-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:e8d4f7cdd5f731efd6faeee3715d280fd91a5f9b4d89312664d56401f65b1473" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a5/a7/11c21f2d6f3299ad07af8142b007e4297ff12d4bdc53e1e1ba48f661954b/milvus_lite-2.4.12-py3-none-macosx_11_0_arm64.whl", hash = "sha256:20087663e7b4385050b7ad08f1f03404426d4c87b1ff91d5a8723eee7fd49e88" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a8/cc/b6f465e984439adf24da0a8ff3035d5c9ece30b6ff19f9a53f73f9ef901a/milvus_lite-2.4.12-py3-none-manylinux2014_aarch64.whl", hash = "sha256:a0f3a5ddbfd19f4a6b842b2fd3445693c796cde272b701a1646a94c1ac45d3d7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/44/43/b3f6e9defd1f3927b972beac7abe3d5b4a3bdb287e3bad69618e2e76cf0a/milvus_lite-2.4.12-py3-none-manylinux2014_x86_64.whl", hash = "sha256:334037ebbab60243b5d8b43d54ca2f835d81d48c3cda0c6a462605e588deb05d" }, +] + +[[package]] +name = "numpy" +version = "2.3.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f3/db/8e12381333aea300890829a0a36bfa738cac95475d88982d538725143fd9/numpy-2.3.0.tar.gz", hash = "sha256:581f87f9e9e9db2cba2141400e160e9dd644ee248788d6f90636eeb8fd9260a6" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/89/59/9df493df81ac6f76e9f05cdbe013cdb0c9a37b434f6e594f5bd25e278908/numpy-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:389b85335838155a9076e9ad7f8fdba0827496ec2d2dc32ce69ce7898bde03ba" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2f/86/4ff04335901d6cf3a6bb9c748b0097546ae5af35e455ae9b962ebff4ecd7/numpy-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9498f60cd6bb8238d8eaf468a3d5bb031d34cd12556af53510f05fcf581c1b7e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/71/8d/a942cd4f959de7f08a79ab0c7e6cecb7431d5403dce78959a726f0f57aa1/numpy-2.3.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:622a65d40d8eb427d8e722fd410ac3ad4958002f109230bc714fa551044ebae2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/86/5d/45850982efc7b2c839c5626fb67fbbc520d5b0d7c1ba1ae3651f2f74c296/numpy-2.3.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b9446d9d8505aadadb686d51d838f2b6688c9e85636a0c3abaeb55ed54756459" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/1a/c0/c871d4a83f93b00373d3eebe4b01525eee8ef10b623a335ec262b58f4dc1/numpy-2.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:50080245365d75137a2bf46151e975de63146ae6d79f7e6bd5c0e85c9931d06a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b7/f6/bc47f5fa666d5ff4145254f9e618d56e6a4ef9b874654ca74c19113bb538/numpy-2.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c24bb4113c66936eeaa0dc1e47c74770453d34f46ee07ae4efd853a2ed1ad10a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f5/b4/65f48009ca0c9b76df5f404fccdea5a985a1bb2e34e97f21a17d9ad1a4ba/numpy-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4d8d294287fdf685281e671886c6dcdf0291a7c19db3e5cb4178d07ccf6ecc67" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/62/5367855a2018578e9334ed08252ef67cc302e53edc869666f71641cad40b/numpy-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6295f81f093b7f5769d1728a6bd8bf7466de2adfa771ede944ce6711382b89dc" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d4/75/5baed8cd867eabee8aad1e74d7197d73971d6a3d40c821f1848b8fab8b84/numpy-2.3.0-cp312-cp312-win32.whl", hash = "sha256:e6648078bdd974ef5d15cecc31b0c410e2e24178a6e10bf511e0557eed0f2570" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/bc/49/d5781eaa1a15acb3b3a3f49dc9e2ff18d92d0ce5c2976f4ab5c0a7360250/numpy-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:0898c67a58cdaaf29994bc0e2c65230fd4de0ac40afaf1584ed0b02cd74c6fdd" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c2/1c/6d343e030815c7c97a1f9fbad00211b47717c7fe446834c224bd5311e6f1/numpy-2.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:bd8df082b6c4695753ad6193018c05aac465d634834dca47a3ae06d4bb22d9ea" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/73/fc/1d67f751fd4dbafc5780244fe699bc4084268bad44b7c5deb0492473127b/numpy-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5754ab5595bfa2c2387d241296e0381c21f44a4b90a776c3c1d39eede13a746a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e8/95/73ffdb69e5c3f19ec4530f8924c4386e7ba097efc94b9c0aff607178ad94/numpy-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d11fa02f77752d8099573d64e5fe33de3229b6632036ec08f7080f46b6649959" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/64/d5/06d4bb31bb65a1d9c419eb5676173a2f90fd8da3c59f816cc54c640ce265/numpy-2.3.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:aba48d17e87688a765ab1cd557882052f238e2f36545dfa8e29e6a91aef77afe" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/12/8b/6c2cef44f8ccdc231f6b56013dff1d71138c48124334aded36b1a1b30c5a/numpy-2.3.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4dc58865623023b63b10d52f18abaac3729346a7a46a778381e0e3af4b7f3beb" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/62/aa/fca4bf8de3396ddb59544df9b75ffe5b73096174de97a9492d426f5cd4aa/numpy-2.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:df470d376f54e052c76517393fa443758fefcdd634645bc9c1f84eafc67087f0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/1c/12/734dce1087eed1875f2297f687e671cfe53a091b6f2f55f0c7241aad041b/numpy-2.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:87717eb24d4a8a64683b7a4e91ace04e2f5c7c77872f823f02a94feee186168f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/48/03/ffa41ade0e825cbcd5606a5669962419528212a16082763fc051a7247d76/numpy-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d8fa264d56882b59dcb5ea4d6ab6f31d0c58a57b41aec605848b6eb2ef4a43e8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/07/58/869398a11863310aee0ff85a3e13b4c12f20d032b90c4b3ee93c3b728393/numpy-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e651756066a0eaf900916497e20e02fe1ae544187cb0fe88de981671ee7f6270" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2f/8a/5756935752ad278c17e8a061eb2127c9a3edf4ba2c31779548b336f23c8d/numpy-2.3.0-cp313-cp313-win32.whl", hash = "sha256:e43c3cce3b6ae5f94696669ff2a6eafd9a6b9332008bafa4117af70f4b88be6f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/08/60/61d60cf0dfc0bf15381eaef46366ebc0c1a787856d1db0c80b006092af84/numpy-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:81ae0bf2564cf475f94be4a27ef7bcf8af0c3e28da46770fc904da9abd5279b5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/66/31/2f2f2d2b3e3c32d5753d01437240feaa32220b73258c9eef2e42a0832866/numpy-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:c8738baa52505fa6e82778580b23f945e3578412554d937093eac9205e845e6e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/89/c7828f23cc50f607ceb912774bb4cff225ccae7131c431398ad8400e2c98/numpy-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:39b27d8b38942a647f048b675f134dd5a567f95bfff481f9109ec308515c51d8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/dd/46/79ecf47da34c4c50eedec7511e53d57ffdfd31c742c00be7dc1d5ffdb917/numpy-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0eba4a1ea88f9a6f30f56fdafdeb8da3774349eacddab9581a21234b8535d3d3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/59/44/f6caf50713d6ff4480640bccb2a534ce1d8e6e0960c8f864947439f0ee95/numpy-2.3.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:b0f1f11d0a1da54927436505a5a7670b154eac27f5672afc389661013dfe3d4f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a6/43/e1fd1aca7c97e234dd05e66de4ab7a5be54548257efcdd1bc33637e72102/numpy-2.3.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:690d0a5b60a47e1f9dcec7b77750a4854c0d690e9058b7bef3106e3ae9117808" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/84/89/f76f93b06a03177c0faa7ca94d0856c4e5c4bcaf3c5f77640c9ed0303e1c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8b51ead2b258284458e570942137155978583e407babc22e3d0ed7af33ce06f8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/aa/f5/4858c3e9ff7a7d64561b20580cf7cc5d085794bd465a19604945d6501f6c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:aaf81c7b82c73bd9b45e79cfb9476cb9c29e937494bfe9092c26aece812818ad" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/08/17/0e3b4182e691a10e9483bcc62b4bb8693dbf9ea5dc9ba0b77a60435074bb/numpy-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f420033a20b4f6a2a11f585f93c843ac40686a7c3fa514060a97d9de93e5e72b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4e/d5/463279fda028d3c1efa74e7e8d507605ae87f33dbd0543cf4c4527c8b882/numpy-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d344ca32ab482bcf8735d8f95091ad081f97120546f3d250240868430ce52555" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0e/1e/7a9d98c886d4c39a2b4d3a7c026bffcf8fbcaf518782132d12a301cfc47a/numpy-2.3.0-cp313-cp313t-win32.whl", hash = "sha256:48a2e8eaf76364c32a1feaa60d6925eaf32ed7a040183b807e02674305beef61" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fe/ab/66fc909931d5eb230107d016861824f335ae2c0533f422e654e5ff556784/numpy-2.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ba17f93a94e503551f154de210e4d50c5e3ee20f7e7a1b5f6ce3f22d419b93bb" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ee/e8/2c8a1c9e34d6f6d600c83d5ce5b71646c32a13f34ca5c518cc060639841c/numpy-2.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:f14e016d9409680959691c109be98c436c6249eaf7f118b424679793607b5944" }, +] + +[[package]] +name = "pandas" +version = "2.3.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/72/51/48f713c4c728d7c55ef7444ba5ea027c26998d96d1a40953b346438602fc/pandas-2.3.0.tar.gz", hash = "sha256:34600ab34ebf1131a7613a260a61dbe8b62c188ec0ea4c296da7c9a06b004133" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/94/46/24192607058dd607dbfacdd060a2370f6afb19c2ccb617406469b9aeb8e7/pandas-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2eb4728a18dcd2908c7fccf74a982e241b467d178724545a48d0caf534b38ebf" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/9f/cc/ae8ea3b800757a70c9fdccc68b67dc0280a6e814efcf74e4211fd5dea1ca/pandas-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9d8c3187be7479ea5c3d30c32a5d73d62a621166675063b2edd21bc47614027" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d8/ba/a7883d7aab3d24c6540a2768f679e7414582cc389876d469b40ec749d78b/pandas-2.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ff730713d4c4f2f1c860e36c005c7cefc1c7c80c21c0688fd605aa43c9fcf09" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/01/a5/931fc3ad333d9d87b10107d948d757d67ebcfc33b1988d5faccc39c6845c/pandas-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba24af48643b12ffe49b27065d3babd52702d95ab70f50e1b34f71ca703e2c0d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d7/bf/0213986830a92d44d55153c1d69b509431a972eb73f204242988c4e66e86/pandas-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:404d681c698e3c8a40a61d0cd9412cc7364ab9a9cc6e144ae2992e11a2e77a20" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a4/0e/21eb48a3a34a7d4bac982afc2c4eb5ab09f2d988bdf29d92ba9ae8e90a79/pandas-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6021910b086b3ca756755e86ddc64e0ddafd5e58e076c72cb1585162e5ad259b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/1f/d9/74017c4eec7a28892d8d6e31ae9de3baef71f5a5286e74e6b7aad7f8c837/pandas-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:094e271a15b579650ebf4c5155c05dcd2a14fd4fdd72cf4854b2f7ad31ea30be" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d3/57/5cb75a56a4842bbd0511c3d1c79186d8315b82dac802118322b2de1194fe/pandas-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c7e2fc25f89a49a11599ec1e76821322439d90820108309bf42130d2f36c983" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/05/01/0c8785610e465e4948a01a059562176e4c8088aa257e2e074db868f86d4e/pandas-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c6da97aeb6a6d233fb6b17986234cc723b396b50a3c6804776351994f2a658fd" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e8/6a/47fd7517cd8abe72a58706aab2b99e9438360d36dcdb052cf917b7bf3bdc/pandas-2.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb32dc743b52467d488e7a7c8039b821da2826a9ba4f85b89ea95274f863280f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2a/b3/463bfe819ed60fb7e7ddffb4ae2ee04b887b3444feee6c19437b8f834837/pandas-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:213cd63c43263dbb522c1f8a7c9d072e25900f6975596f883f4bebd77295d4f3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/0c/e0704ccdb0ac40aeb3434d1c641c43d05f75c92e67525df39575ace35468/pandas-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1d2b33e68d0ce64e26a4acc2e72d747292084f4e8db4c847c6f5f6cbe56ed6d8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e9/df/815d6583967001153bb27f5cf075653d69d51ad887ebbf4cfe1173a1ac58/pandas-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:430a63bae10b5086995db1b02694996336e5a8ac9a96b4200572b413dfdfccb9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/79/88/ca5973ed07b7f484c493e941dbff990861ca55291ff7ac67c815ce347395/pandas-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4930255e28ff5545e2ca404637bcc56f031893142773b3468dc021c6c32a1390" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/24/fb/0994c14d1f7909ce83f0b1fb27958135513c4f3f2528bde216180aa73bfc/pandas-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f925f1ef673b4bd0271b1809b72b3270384f2b7d9d14a189b12b7fc02574d575" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/9d/a2/9b903e5962134497ac4f8a96f862ee3081cb2506f69f8e4778ce3d9c9d82/pandas-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78ad363ddb873a631e92a3c063ade1ecfb34cae71e9a2be6ad100f875ac1042" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/81/3a/3806d041bce032f8de44380f866059437fb79e36d6b22c82c187e65f765b/pandas-2.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951805d146922aed8357e4cc5671b8b0b9be1027f0619cea132a9f3f65f2f09c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/15/aa/3fc3181d12b95da71f5c2537c3e3b3af6ab3a8c392ab41ebb766e0929bc6/pandas-2.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a881bc1309f3fce34696d07b00f13335c41f5f5a8770a33b09ebe23261cfc67" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/37/e7/e12f2d9b0a2c4a2cc86e2aabff7ccfd24f03e597d770abfa2acd313ee46b/pandas-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e1991bbb96f4050b09b5f811253c4f3cf05ee89a589379aa36cd623f21a31d6f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/39/c2/646d2e93e0af70f4e5359d870a63584dacbc324b54d73e6b3267920ff117/pandas-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bb3be958022198531eb7ec2008cfc78c5b1eed51af8600c6c5d9160d89d8d249" }, +] + +[[package]] +name = "protobuf" +version = "6.31.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/52/f3/b9655a711b32c19720253f6f06326faf90580834e2e83f840472d752bc8b/protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f3/6f/6ab8e4bf962fd5570d3deaa2d5c38f0a363f57b4501047b5ebeb83ab1125/protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/44/3a/b15c4347dd4bf3a1b0ee882f384623e2063bb5cf9fa9d57990a4f7df2fb6/protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6a/c9/b9689a2a250264a84e66c46d8862ba788ee7a641cdca39bccf64f59284b7/protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f1227473dc43d44ed644425268eb7c2e488ae245d51c6866d19fe158e207402" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/76/a1/7a5a94032c83375e4fe7e7f56e3976ea6ac90c5e85fac8576409e25c39c3/protobuf-6.31.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fa/b1/b59d405d64d31999244643d88c45c8241c58f17cc887e73bcb90602327f8/protobuf-6.31.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4ee898bf66f7a8b0bd21bce523814e6fbd8c6add948045ce958b73af7e8878c6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f7/af/ab3c51ab7507a7325e98ffe691d9495ee3d3aa5f589afad65ec920d39821/protobuf-6.31.1-py3-none-any.whl", hash = "sha256:720a6c7e6b77288b85063569baae8536671b39f15cc22037ec7045658d80489e" }, +] + +[[package]] +name = "pydantic" +version = "2.11.5" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f0/86/8ce9040065e8f924d642c58e4a344e33163a07f6b57f836d0d734e0ad3fb/pydantic-2.11.5.tar.gz", hash = "sha256:7f853db3d0ce78ce8bbb148c401c2cdd6431b3473c0cdff2755c7690952a7b7a" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b5/69/831ed22b38ff9b4b64b66569f0e5b7b97cf3638346eb95a2147fdb49ad5f/pydantic-2.11.5-py3-none-any.whl", hash = "sha256:f9c26ba06f9747749ca1e5c94d6a85cb84254577553c8785576fd38fa64dc0f7" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.9.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/67/1d/42628a2c33e93f8e9acbde0d5d735fa0850f3e6a2f8cb1eb6c40b9a732ac/pydantic_settings-2.9.1.tar.gz", hash = "sha256:c509bf79d27563add44e8446233359004ed85066cd096d8b510f715e6ef5d268" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b6/5f/d6d641b490fd3ec2c4c13b4244d68deea3a1b970a97be64f34fb5504ff72/pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef" }, +] + +[[package]] +name = "pygments" +version = "2.19.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c" }, +] + +[[package]] +name = "pymilvus" +version = "2.5.10" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "grpcio" }, + { name = "milvus-lite", marker = "sys_platform != 'win32'" }, + { name = "pandas" }, + { name = "protobuf" }, + { name = "python-dotenv" }, + { name = "setuptools" }, + { name = "ujson" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/da/e2/88f126a08d8eefba7341e3eb323406a227146094aab7137a2b91d882e98d/pymilvus-2.5.10.tar.gz", hash = "sha256:cc44ad776aeab781ee4c4a4d334b73e746066ab2fb6722c5311f02efa6fc54a2" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b0/4b/847704930ad8ddd0d0975e9a3a5e3fe704f642debe97454135c2b9ee7081/pymilvus-2.5.10-py3-none-any.whl", hash = "sha256:7da540f93068871cda3941602c55227aeaafb66f2f0d9c05e8f9db783716b100" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" }, +] + +[[package]] +name = "python-dotenv" +version = "1.1.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/88/2c/7bb1416c5620485aa793f2de31d3df393d3686aa8a8506d11e10e13c5baf/python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/1e/18/98a99ad95133c6a6e2005fe89faedf294a748bd5dc803008059409ac9b1e/python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.20" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00" }, +] + +[[package]] +name = "rag-mcp-server" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "mcp", extra = ["cli"] }, + { name = "pymilvus" }, + { name = "requests" }, +] + +[package.metadata] +requires-dist = [ + { name = "mcp", extras = ["cli"], specifier = ">=1.9.3" }, + { name = "pymilvus", specifier = ">=2.5.10" }, + { name = "requests", specifier = ">=2.32.3" }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" }, +] + +[[package]] +name = "rich" +version = "14.0.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/53/830aa4c3066a8ab0ae9a9955976fb770fe9c6102117c8ec4ab3ea62d89e8/rich-14.0.0.tar.gz", hash = "sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2" }, +] + +[[package]] +name = "sse-starlette" +version = "2.3.6" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/8c/f4/989bc70cb8091eda43a9034ef969b25145291f3601703b82766e5172dfed/sse_starlette-2.3.6.tar.gz", hash = "sha256:0382336f7d4ec30160cf9ca0518962905e1b69b72d6c1c995131e0a703b436e3" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/81/05/78850ac6e79af5b9508f8841b0f26aa9fd329a1ba00bf65453c2d312bcc8/sse_starlette-2.3.6-py3-none-any.whl", hash = "sha256:d49a8285b182f6e2228e2609c350398b2ca2c36216c2675d875f81e93548f760" }, +] + +[[package]] +name = "starlette" +version = "0.47.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/8b/d0/0332bd8a25779a0e2082b0e179805ad39afad642938b371ae0882e7f880d/starlette-0.47.0.tar.gz", hash = "sha256:1f64887e94a447fed5f23309fb6890ef23349b7e478faa7b24a851cd4eb844af" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e3/81/c60b35fe9674f63b38a8feafc414fca0da378a9dbd5fa1e0b8d23fcc7a9b/starlette-0.47.0-py3-none-any.whl", hash = "sha256:9d052d4933683af40ffd47c7465433570b4949dc937e20ad1d73b34e72f10c37" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2" }, +] + +[[package]] +name = "typer" +version = "0.16.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/c5/8c/7d682431efca5fd290017663ea4588bf6f2c6aad085c7f108c5dbc316e70/typer-0.16.0.tar.gz", hash = "sha256:af377ffaee1dbe37ae9440cb4e8f11686ea5ce4e9bae01b84ae7c63b87f1dd3b" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/76/42/3efaf858001d2c2913de7f354563e3a3a2f0decae3efe98427125a8f441e/typer-0.16.0-py3-none-any.whl", hash = "sha256:1f79bed11d4d02d4310e3c1b7ba594183bcedb0ac73b27a9e5f28f6fb5b98855" }, +] + +[[package]] +name = "typing-extensions" +version = "4.14.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/d1/bc/51647cd02527e87d05cb083ccc402f93e441606ff1f01739a62c8ad09ba5/typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/69/e0/552843e0d356fbb5256d21449fa957fa4eff3bbc135a74a691ee70c7c5da/typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51" }, +] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8" }, +] + +[[package]] +name = "ujson" +version = "5.10.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f0/00/3110fd566786bfa542adb7932d62035e0c0ef662a8ff6544b6643b3d6fd7/ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e8/a6/fd3f8bbd80842267e2d06c3583279555e8354c5986c952385199d57a5b6c/ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a8/47/dd03fd2b5ae727e16d5d18919b383959c6d269c7b948a380fdd879518640/ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/25/23/079a4cc6fd7e2655a473ed9e776ddbb7144e27f04e8fc484a0fb45fe6f71/ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/81/668707e5f2177791869b624be4c06fb2473bf97ee33296b18d1cf3092af7/ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/bd/50/056d518a386d80aaf4505ccf3cee1c40d312a46901ed494d5711dd939bc3/ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fc/d6/aeaf3e2d6fb1f4cfb6bf25f454d60490ed8146ddc0600fae44bfe7eb5a72/ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f8/d5/1f2a5d2699f447f7d990334ca96e90065ea7f99b142ce96e85f26d7e78e2/ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f2/2c/6990f4ccb41ed93744aaaa3786394bca0875503f97690622f3cafc0adfde/ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/14/f5/a2368463dbb09fbdbf6a696062d0c0f62e4ae6fa65f38f829611da2e8fdd/ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/59/2d/691f741ffd72b6c84438a93749ac57bf1a3f217ac4b0ea4fd0e96119e118/ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0d/69/b3e3f924bb0e8820bb46671979770c5be6a7d51c77a66324cdb09f1acddb/ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/32/8a/9b748eb543c6cabc54ebeaa1f28035b1bd09c0800235b08e85990734c41e/ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/39/50/4b53ea234413b710a18b305f465b328e306ba9592e13a791a6a6b378869b/ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b4/9d/8061934f960cdb6dd55f0b3ceeff207fcc48c64f58b43403777ad5623d9e/ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f5/be/7bfa84b28519ddbb67efc8410765ca7da55e6b93aba84d97764cd5794dbc/ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/48/eb/85d465abafb2c69d9699cfa5520e6e96561db787d36c677370e066c7e2e7/ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/9f/76/2a63409fc05d34dd7d929357b7a45e3a2c96f22b4225cd74becd2ba6c4cb/ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/45/ed/582c4daba0f3e1688d923b5cb914ada1f9defa702df38a1916c899f7c4d1/ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d7/0c/9837fece153051e19c7bade9f88f9b409e026b9525927824cdf16293b43b/ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d7/72/6cb6728e2738c05bbe9bd522d6fc79f86b9a28402f38663e85a28fddd4a0/ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539" }, +] + +[[package]] +name = "urllib3" +version = "2.4.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813" }, +] + +[[package]] +name = "uvicorn" +version = "0.34.3" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/de/ad/713be230bcda622eaa35c28f0d328c3675c371238470abdea52417f17a8e/uvicorn-0.34.3.tar.gz", hash = "sha256:35919a9a979d7a59334b6b10e05d77c1d0d574c50e0fc98b8b1a0f165708b55a" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6d/0d/8adfeaa62945f90d19ddc461c55f4a50c258af7662d34b6a3d5d1f8646f6/uvicorn-0.34.3-py3-none-any.whl", hash = "sha256:16246631db62bdfbf069b0645177d6e8a77ba950cfedbfd093acef9444e4d885" }, +] From c453551b869540b82b1d1dfa36b2054e98ef605c Mon Sep 17 00:00:00 2001 From: szlele <595128841@qq.com> Date: Wed, 18 Jun 2025 10:55:45 +0800 Subject: [PATCH 4/6] =?UTF-8?q?llama.cpp=E6=A8=A1=E5=9E=8B=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- llamacpp-embedding-rerank-server/README.md | 113 ++++++++++++++++++++- 1 file changed, 110 insertions(+), 3 deletions(-) diff --git a/llamacpp-embedding-rerank-server/README.md b/llamacpp-embedding-rerank-server/README.md index 478f3e7..88dee9c 100644 --- a/llamacpp-embedding-rerank-server/README.md +++ b/llamacpp-embedding-rerank-server/README.md @@ -1,5 +1,72 @@ # llama.cpp 部署 Embedding和Rerank模型 +## ARM架构下编译llama.cpp + +1. 下载llama.cpp源码 +```shell +cd /home +git clone https://github.com/ggml-org/llama.cpp.git +``` + +2. 拉取``ubuntu:22.04``镜像 + +```shell +docker pull ubuntu:22.04 +docker run -itd -v /home/llama.cpp:/home/llama.cpp ubuntu:22.04 --name ubuntu_llamacpp + +docker exec -it ubuntu_llamacpp /bin/bash +``` + +3. 容器内编译 + +```shell +apt-get update +apt-get install -y git cmake libcurl4-openssl-dev build-essential +cmake -B build +cmake --build build --config Release -j 8 +``` + +4. 宿主机上构建llama.cpp镜像 + +经过在上面容器内编译的步骤,``/home/llama.cpp``下新增``build``文件夹,里面就是基于``ubuntu:22.04``镜像环境编译的llama.cpp的库文件。下面就可根据这些文件再基于``ubuntu:22.04``构建``llama.cpp-arm64:server``镜像。 + +```shell +cd /home/llama.cpp +mkdir -p docker/lib +cp -r ../build/bin/*.so ./docker/lib/ +cp ../build/bin/llama-server ./docker/llama-server +vi Dockerfile +``` + +``Dockerfile``内容 + +```shell +FROM ubuntu:22.04 + +RUN apt-get update \ + && apt-get install -y libgomp1 curl \ + && apt autoremove -y \ + && apt clean -y \ + && rm -rf /tmp/* /var/tmp/* \ + && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ + && find /var/cache -type f -delete + +COPY lib/ /app +COPY llama-server /app + +ENV LLAMA_ARG_HOST=0.0.0.0 + +WORKDIR /app + +ENTRYPOINT ["/app/llama-server"] +``` + +构建镜像 + +```shell +docker build -t llama.cpp-arm64:server . +``` + ## 下载模型 `Embedding`: bge-m3 @@ -7,15 +74,55 @@ `Rerank`: bge-reranker-v2-m3 ```shell +pip config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple +pip install modelscope cd /home mkdir models -uv venv -uv tool install modescope +cd models +modelscope download --model gpustack/bge-reranker-v2-m3-GGUF bge-reranker-v2-m3-Q8_0.gguf --local_dir ./bge-reranker-v2-m3-GGUF modelscope download --model gpustack/bge-m3-GGUF bge-m3-Q8_0.gguf --local_dir ./bge-m3-GGUF +``` -modescope modelscope download --model gpustack/bge-reranker-v2-m3-GGUF bge-reranker-v2-m3-Q8_0.gguf --local_dir ./bge-reranker-v2-m3-GGUF +## 编制docker-compose文件 + +```shell +services: + llamacpp-embedding-server: + image: llama.cpp-arm64:server + container_name: llamacpp-embedding-server + command: --embedding --pooling mean --verbose-prompt + restart: always + ports: + - 8081:8080 + volumes: + - /home/models/bge-m3-GGUF:/models + environment: + LLAMA_ARG_MODEL: /models/bge-m3-Q8_0.gguf + LLAMA_ARG_CTX_SIZE: 8192 + LLAMA_ARG_N_PARALLEL: 8 + LLAMA_ARG_PORT: 8080 + LLAMA_ARG_UBATCH: 8192 + LLAMA_ARG_N_GPU_LAYERS_DRAFT: 0 + llamacpp-rerank-server: + image: llama.cpp-arm64:server + container_name: llamacpp-rerank-server + command: --reranking --pooling rank + restart: always + ports: + - 8082:8080 + volumes: + - /home/models/bge-reranker-v2-m3-GGUF:/models + environment: + LLAMA_ARG_MODEL: /models/bge-reranker-v2-m3-Q8_0.gguf + LLAMA_ARG_CTX_SIZE: 8192 + LLAMA_ARG_N_PARALLEL: 8 + LLAMA_ARG_PORT: 8080 + LLAMA_ARG_BATCH: 8192 + LLAMA_ARG_UBATCH: 8192 + LLAMA_ARG_FLASH_ATTN: enable + LLAMA_ARG_N_GPU_LAYERS_DRAFT: 0 ``` ## 部署模型 From 55b4719afd44f1252b5e8fcb81c88e386d8cdeb4 Mon Sep 17 00:00:00 2001 From: szlele <595128841@qq.com> Date: Mon, 23 Jun 2025 09:19:12 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E9=80=82=E9=85=8D=E6=96=B0=E7=89=88?= =?UTF-8?q?=E7=9A=84transformer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.python-version | 1 + onnxruntime-embedding-rerank-server/README.md | 0 .../app/download_model.py | 19 + .../app/embedding_api.py | 13 +- .../app/embedding_onnx_provider.py | 5 +- .../app/log_config.py | 52 -- .../app/main.py | 73 +- .../app/rerank_api.py | 9 +- .../app/rerank_onnx_provider.py | 6 +- .../pyproject.toml | 14 + .../requirements.txt | 4 - onnxruntime-embedding-rerank-server/run.sh | 2 +- onnxruntime-embedding-rerank-server/stop.sh | 2 + onnxruntime-embedding-rerank-server/uv.lock | 660 ++++++++++++++++++ 14 files changed, 742 insertions(+), 118 deletions(-) create mode 100644 onnxruntime-embedding-rerank-server/.python-version create mode 100644 onnxruntime-embedding-rerank-server/README.md create mode 100644 onnxruntime-embedding-rerank-server/app/download_model.py delete mode 100644 onnxruntime-embedding-rerank-server/app/log_config.py create mode 100644 onnxruntime-embedding-rerank-server/pyproject.toml delete mode 100644 onnxruntime-embedding-rerank-server/requirements.txt create mode 100644 onnxruntime-embedding-rerank-server/stop.sh create mode 100644 onnxruntime-embedding-rerank-server/uv.lock diff --git a/onnxruntime-embedding-rerank-server/.python-version b/onnxruntime-embedding-rerank-server/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/onnxruntime-embedding-rerank-server/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/onnxruntime-embedding-rerank-server/README.md b/onnxruntime-embedding-rerank-server/README.md new file mode 100644 index 0000000..e69de29 diff --git a/onnxruntime-embedding-rerank-server/app/download_model.py b/onnxruntime-embedding-rerank-server/app/download_model.py new file mode 100644 index 0000000..3a72245 --- /dev/null +++ b/onnxruntime-embedding-rerank-server/app/download_model.py @@ -0,0 +1,19 @@ +import os +from modelscope import snapshot_download + +# 当前文件的绝对路径 +filepath = os.path.abspath(__file__) +models_dir = os.path.join(os.path.dirname(os.path.dirname(filepath)), "models") +os.makedirs(models_dir, exist_ok=True) + +def download_embedding_models(): + embedding_dir = os.path.join(models_dir,"bce-embedding-base_v1") + if not os.path.exists(embedding_dir): + snapshot_download(model_id='netease-youdao/bce-embedding-base_v1',local_dir = embedding_dir) + return embedding_dir + +def download_rerank_models(): + reranker_dir = os.path.join(models_dir,"bce-reranker-base_v1") + if not os.path.exists(reranker_dir): + snapshot_download(model_id='netease-youdao/bce-reranker-base_v1',local_dir = reranker_dir) + return reranker_dir \ No newline at end of file diff --git a/onnxruntime-embedding-rerank-server/app/embedding_api.py b/onnxruntime-embedding-rerank-server/app/embedding_api.py index a0e54fd..0f29493 100644 --- a/onnxruntime-embedding-rerank-server/app/embedding_api.py +++ b/onnxruntime-embedding-rerank-server/app/embedding_api.py @@ -1,10 +1,13 @@ -from fastapi import APIRouter, Request, HTTPException -from typing import List,Union,Optional -from pydantic import BaseModel,Field -from uuid import uuid4 -from log_config import logger +from fastapi import APIRouter, Request +from typing import List,Union +from pydantic import BaseModel from model_service import EmbeddingService import time +import logging + + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) embedding_router = APIRouter(tags=['Embedding']) diff --git a/onnxruntime-embedding-rerank-server/app/embedding_onnx_provider.py b/onnxruntime-embedding-rerank-server/app/embedding_onnx_provider.py index 73438d6..57aed74 100644 --- a/onnxruntime-embedding-rerank-server/app/embedding_onnx_provider.py +++ b/onnxruntime-embedding-rerank-server/app/embedding_onnx_provider.py @@ -1,8 +1,7 @@ from onnxruntime import InferenceSession -from transformers import AutoTokenizer +from transformers import XLMRobertaTokenizer from concurrent.futures import ThreadPoolExecutor from typing import List -from log_config import logger import numpy as np import os @@ -13,7 +12,7 @@ def __init__(self,embed_path:str,**kwargs): if not os.path.isfile(embed_model_path): raise ValueError(f"{embed_model_path} 文件不存在") self.workers = kwargs.get('workers', 8) - self._tokenizer = AutoTokenizer.from_pretrained(embed_path) + self._tokenizer = XLMRobertaTokenizer.from_pretrained(embed_path) providers = ['CPUExecutionProvider'] self._session = InferenceSession(embed_model_path, providers=providers) self.thread_pool = ThreadPoolExecutor(max_workers=self.workers) diff --git a/onnxruntime-embedding-rerank-server/app/log_config.py b/onnxruntime-embedding-rerank-server/app/log_config.py deleted file mode 100644 index e310faa..0000000 --- a/onnxruntime-embedding-rerank-server/app/log_config.py +++ /dev/null @@ -1,52 +0,0 @@ -import os -import logging -import logging.config -from typing import Any - -LOG_PATH = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "logs") -os.makedirs(LOG_PATH, exist_ok=True) - -LOGGING_CONFIG: dict[str, Any] = { - "version": 1, - "disable_existing_loggers": False, - "formatters": { - "default": { - "()": "uvicorn.logging.DefaultFormatter", - "fmt": "%(asctime)s %(levelprefix)s %(message)s", - "use_colors": None, - }, - "access": { - "()": "uvicorn.logging.AccessFormatter", - "fmt": '%(asctime)s %(levelprefix)s %(client_addr)s - "%(request_line)s" %(status_code)s', - }, - }, - "handlers": { - "default": { - "formatter": "default", - "class": "logging.StreamHandler", - "stream": "ext://sys.stderr", - }, - "access": { - "formatter": "access", - "class": "logging.StreamHandler", - "stream": "ext://sys.stdout", - }, - # "file": { - # "formatter": "default", - # "encoding": "utf-8", - # "class": "logging.handlers.RotatingFileHandler", - # "filename": os.path.join(LOG_PATH, "server_info.log"), - # "maxBytes": 1024 * 1024 * 50, - # "backupCount": 5, - # }, - }, - "loggers": { - "uvicorn": {"handlers": ["default"], "level": "INFO", "propagate": False}, - "uvicorn.error": {"level": "INFO"}, - "uvicorn.access": {"handlers": ["access"], "level": "INFO", "propagate": False}, - "app": {"handlers": ["default"], "level": "INFO", "propagate": False}, - }, -} - -logging.config.dictConfig(LOGGING_CONFIG) -logger = logging.getLogger("app") \ No newline at end of file diff --git a/onnxruntime-embedding-rerank-server/app/main.py b/onnxruntime-embedding-rerank-server/app/main.py index 59397cd..3962d94 100644 --- a/onnxruntime-embedding-rerank-server/app/main.py +++ b/onnxruntime-embedding-rerank-server/app/main.py @@ -3,60 +3,41 @@ from model_service import EmbeddingService,RerankService from embedding_api import embedding_router from rerank_api import rerank_router -from modelscope import snapshot_download,model_file_download -from log_config import logger,LOGGING_CONFIG +from download_model import download_embedding_models,download_rerank_models +import logging import os import uvicorn -# 当前文件的绝对路径 -filepath = os.path.abspath(__file__) +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) -def download_models(): - models_dir = os.path.join(os.path.dirname(os.path.dirname(filepath)), "models") - os.makedirs(models_dir, exist_ok=True) +EMBEDDING_MODEL_PATH = os.getenv("LOCAL_EMBEDDING_MODEL_PATH",download_embedding_models()) +RERANK_MODEL_PATH = os.getenv("LOCAL_RERANK_MODEL_PATH",download_rerank_models()) - # embedding model - embedding_dir = os.path.join(models_dir,"bce_embedding_base") - if not os.path.exists(embedding_dir): - snapshot_download(model_id='netease-youdao/bce-embedding-base_v1',local_dir = embedding_dir) - model_file_download(model_id='maidalun/bce-embedding-base_v1',file_path='tokenizer_config.json',local_dir=embedding_dir) - model_file_download(model_id='maidalun/bce-embedding-base_v1',file_path='tokenizer.json',local_dir=embedding_dir) - - # reranker - reranker_dir = os.path.join(models_dir,"bce_reranker_base") - if not os.path.exists(reranker_dir): - snapshot_download(model_id='netease-youdao/bce-reranker-base_v1',local_dir = reranker_dir) - model_file_download(model_id='maidalun/bce-reranker-base_v1',file_path='tokenizer_config.json',local_dir=reranker_dir) - model_file_download(model_id='maidalun/bce-reranker-base_v1',file_path='tokenizer.json',local_dir=reranker_dir) - return embedding_dir,reranker_dir +logger.info(f"EMBEDDING_MODEL_PATH:{EMBEDDING_MODEL_PATH}") +logger.info(f"RERANK_MODEL_PATH:{RERANK_MODEL_PATH}") -def create_app(embedding_dir,reranker_dir) -> FastAPI: - @asynccontextmanager - async def lifespan(app:FastAPI): - """生命周期""" - app.state.embed_engine = EmbeddingService(embedding_dir, 8) - app.state.rerank_engine = RerankService(reranker_dir, 8) - logger.info("应用初始化成功") - yield - logger.info("应用正常停止") +@asynccontextmanager +async def lifespan(app:FastAPI): + """生命周期""" + app.state.embed_engine = EmbeddingService(EMBEDDING_MODEL_PATH, 8) + app.state.rerank_engine = RerankService(RERANK_MODEL_PATH, 8) + logger.info("应用初始化成功") + yield + logger.info("应用正常停止") - # 创建应用 - app = FastAPI( - title="Embedding Inference Server", - lifespan=lifespan, - root_path="/v1", - version="1.0", - license_info={"name":"Apache License 2.0","identifier":"Apache"} - ) +# 创建应用 +app = FastAPI( + title="Embedding and Reranker Inference Server", + lifespan=lifespan, + root_path="/v1", + version="1.0", + license_info={"name":"Apache License 2.0","identifier":"Apache"} + ) - app.include_router(embedding_router) - app.include_router(rerank_router) - return app +app.include_router(embedding_router) +app.include_router(rerank_router) if __name__ == "__main__": - # 下载模型 - embedding_dir,reranker_dir = download_models() - # 创建应用 - app = create_app(embedding_dir,reranker_dir) # 启动应用 - uvicorn.run(app, host="0.0.0.0", port=9997,log_config=LOGGING_CONFIG) \ No newline at end of file + uvicorn.run(app, host="0.0.0.0", port=9997) \ No newline at end of file diff --git a/onnxruntime-embedding-rerank-server/app/rerank_api.py b/onnxruntime-embedding-rerank-server/app/rerank_api.py index 95f2fb9..e68f70a 100644 --- a/onnxruntime-embedding-rerank-server/app/rerank_api.py +++ b/onnxruntime-embedding-rerank-server/app/rerank_api.py @@ -1,10 +1,13 @@ from fastapi import APIRouter, Request from typing import List -from pydantic import BaseModel,Field +from pydantic import BaseModel from uuid import uuid4 -from log_config import logger from model_service import RerankService import time +import logging + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) rerank_router = APIRouter(tags=['Rerank']) @@ -40,7 +43,7 @@ def text_rerank(request: Request,rerank_request:RerankRequest) -> RerankResponse results = engine.execute(query,documents,top_n,return_documents) # usage = Usage(prompt_tokens=len(documents),total_tokens=total_tokens) - logger.info("请求结果:\n%s\n耗时 %.4f ms",results,(time.perf_counter() - start_time) * 1000) + logger.info("请求耗时 %.4f ms,返回结果:\n%s",(time.perf_counter() - start_time) * 1000, results) rerankResult = [ RerankResult( index = result['id'], diff --git a/onnxruntime-embedding-rerank-server/app/rerank_onnx_provider.py b/onnxruntime-embedding-rerank-server/app/rerank_onnx_provider.py index 1f1c98c..235deae 100644 --- a/onnxruntime-embedding-rerank-server/app/rerank_onnx_provider.py +++ b/onnxruntime-embedding-rerank-server/app/rerank_onnx_provider.py @@ -1,8 +1,7 @@ import onnxruntime as ort -from transformers import AutoTokenizer +from transformers import XLMRobertaTokenizer from typing import List from copy import deepcopy -from log_config import logger from concurrent.futures import ThreadPoolExecutor import numpy as np import os @@ -21,7 +20,7 @@ def __init__(self,rerank_path,**kwargs): # 判断文件是否存在 if not os.path.isfile(rerank_model_path): raise ValueError(f"{rerank_model_path} 文件不存在") - self._tokenizer = AutoTokenizer.from_pretrained(rerank_path) + self._tokenizer = XLMRobertaTokenizer.from_pretrained(rerank_path) self.sep_id = self._tokenizer.sep_token_id self.overlap_tokens = kwargs.get('overlap_tokens', 80) self.max_length = kwargs.get('max_length', 512) @@ -30,7 +29,6 @@ def __init__(self,rerank_path,**kwargs): self.session = ort.InferenceSession(rerank_model_path, providers=providers) self.thread_pool = ThreadPoolExecutor(max_workers=self.workers) - def tokenize_preproc(self, query: str, passages: List[str]): def _merge_inputs(chunk1_raw, chunk2): diff --git a/onnxruntime-embedding-rerank-server/pyproject.toml b/onnxruntime-embedding-rerank-server/pyproject.toml new file mode 100644 index 0000000..713e1a3 --- /dev/null +++ b/onnxruntime-embedding-rerank-server/pyproject.toml @@ -0,0 +1,14 @@ +[project] +name = "onnxruntime-embedding-rerank-server" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "fastapi>=0.115.13", + "modelscope>=1.27.1", + "onnxruntime>=1.22.0", + "sentencepiece>=0.2.0", + "tiktoken>=0.9.0", + "transformers>=4.52.4", +] diff --git a/onnxruntime-embedding-rerank-server/requirements.txt b/onnxruntime-embedding-rerank-server/requirements.txt deleted file mode 100644 index 7ae27e3..0000000 --- a/onnxruntime-embedding-rerank-server/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -fastapi[standard] -onnxruntime -transformers -modelscope \ No newline at end of file diff --git a/onnxruntime-embedding-rerank-server/run.sh b/onnxruntime-embedding-rerank-server/run.sh index 851a96c..edfb7d5 100644 --- a/onnxruntime-embedding-rerank-server/run.sh +++ b/onnxruntime-embedding-rerank-server/run.sh @@ -1,4 +1,4 @@ -nohup python -u app/main.py > app.log 2>&1 & +nohup uv run app/main.py > app.log 2>&1 & PID1=$! # 生成close.sh脚本,写入kill命令 diff --git a/onnxruntime-embedding-rerank-server/stop.sh b/onnxruntime-embedding-rerank-server/stop.sh new file mode 100644 index 0000000..4458fc9 --- /dev/null +++ b/onnxruntime-embedding-rerank-server/stop.sh @@ -0,0 +1,2 @@ +#!/bin/bash +kill -9 28070 diff --git a/onnxruntime-embedding-rerank-server/uv.lock b/onnxruntime-embedding-rerank-server/uv.lock new file mode 100644 index 0000000..c3b1a06 --- /dev/null +++ b/onnxruntime-embedding-rerank-server/uv.lock @@ -0,0 +1,660 @@ +version = 1 +revision = 2 +requires-python = ">=3.12" + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53" }, +] + +[[package]] +name = "anyio" +version = "4.9.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/95/7d/4c1bd541d4dffa1b52bd83fb8527089e097a106fc90b467a7313b105f840/anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c" }, +] + +[[package]] +name = "certifi" +version = "2025.6.15" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/73/f7/f14b46d4bcd21092d7d3ccef689615220d8a08fb25e564b65d20738e672e/certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/84/ae/320161bd181fc06471eed047ecce67b693fd7515b16d495d8932db763426/certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095/charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cbb868e4595ee30/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/58/aa/8904b84bc8084ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c0e23b0562d64af46a06aae4/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a/charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc/charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" }, +] + +[[package]] +name = "coloredlogs" +version = "15.0.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "humanfriendly" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934" }, +] + +[[package]] +name = "fastapi" +version = "0.115.13" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/20/64/ec0788201b5554e2a87c49af26b77a4d132f807a0fa9675257ac92c6aa0e/fastapi-0.115.13.tar.gz", hash = "sha256:55d1d25c2e1e0a0a50aceb1c8705cd932def273c102bff0b1c1da88b3c6eb307" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/59/4a/e17764385382062b0edbb35a26b7cf76d71e27e456546277a42ba6545c6e/fastapi-0.115.13-py3-none-any.whl", hash = "sha256:0a0cab59afa7bab22f5eb347f8c9864b681558c278395e94035a741fc10cd865" }, +] + +[[package]] +name = "filelock" +version = "3.18.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/0a/10/c23352565a6544bdc5353e0b15fc1c563352101f30e24bf500207a54df9a/filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de" }, +] + +[[package]] +name = "flatbuffers" +version = "25.2.10" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/e4/30/eb5dce7994fc71a2f685d98ec33cc660c0a5887db5610137e60d8cbc4489/flatbuffers-25.2.10.tar.gz", hash = "sha256:97e451377a41262f8d9bd4295cc836133415cc03d8cb966410a4af92eb00d26e" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b8/25/155f9f080d5e4bc0082edfda032ea2bc2b8fab3f4d25d46c1e9dd22a1a89/flatbuffers-25.2.10-py2.py3-none-any.whl", hash = "sha256:ebba5f4d5ea615af3f7fd70fc310636fbb2bbd1f566ac0a23d98dd412de50051" }, +] + +[[package]] +name = "fsspec" +version = "2025.5.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/00/f7/27f15d41f0ed38e8fcc488584b57e902b331da7f7c6dcda53721b15838fc/fsspec-2025.5.1.tar.gz", hash = "sha256:2e55e47a540b91843b755e83ded97c6e897fa0942b11490113f09e9c443c2475" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/bb/61/78c7b3851add1481b048b5fdc29067397a1784e2910592bc81bb3f608635/fsspec-2025.5.1-py3-none-any.whl", hash = "sha256:24d3a2e663d5fc735ab256263c4075f374a174c3410c0b25e5bd1970bceaa462" }, +] + +[[package]] +name = "hf-xet" +version = "1.1.4" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/8d/11/b480bb7515db97d5b2b703927a59bbdd3f87e68d47dff5591aada467b4a9/hf_xet-1.1.4.tar.gz", hash = "sha256:875158df90cb13547752532ed73cad9dfaad3b29e203143838f67178418d08a4" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c4/62/3b41a7439930996530c64955874445012fd9044c82c60b34c5891c34fec6/hf_xet-1.1.4-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:6591ab9f61ea82d261107ed90237e2ece972f6a7577d96f5f071208bbf255d1c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/9b/9f/1744fb1d79e0ac147578b193ce29208ebb9f4636e8cdf505638f6f0a6874/hf_xet-1.1.4-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:071b0b4d4698990f746edd666c7cc42555833d22035d88db0df936677fb57d29" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d1/a8/49a81d4f81b0d21cc758b6fca3880a85ca0d209e8425c8b3a6ef694881ca/hf_xet-1.1.4-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5b610831e92e41182d4c028653978b844d332d492cdcba1b920d3aca4a0207e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/bf/8b/65fa08273789dafbc38d0f0bdd20df56b63ebc6566981bbaa255d9d84a33/hf_xet-1.1.4-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f6578bcd71393abfd60395279cc160ca808b61f5f9d535b922fcdcd3f77a708d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8b/4b/224340bb1d5c63b6e03e04095b4e42230848454bf4293c45cd7bdaa0c208/hf_xet-1.1.4-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fb2bbfa2aae0e4f0baca988e7ba8d8c1a39a25adf5317461eb7069ad00505b3e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4a/b7/4be010014de6585401c32a04c46b09a4a842d66bd16ed549a401e973b74b/hf_xet-1.1.4-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:73346ba3e2e15ea8909a26b0862b458f15b003e6277935e3fba5bf273508d698" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c2/2d/cf148d532f741fbf93f380ff038a33c1309d1e24ea629dc39d11dca08c92/hf_xet-1.1.4-cp37-abi3-win_amd64.whl", hash = "sha256:52e8f8bc2029d8b911493f43cea131ac3fa1f0dc6a13c50b593c4516f02c6fc3" }, +] + +[[package]] +name = "huggingface-hub" +version = "0.33.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/91/8a/1362d565fefabaa4185cf3ae842a98dbc5b35146f5694f7080f043a6952f/huggingface_hub-0.33.0.tar.gz", hash = "sha256:aa31f70d29439d00ff7a33837c03f1f9dd83971ce4e29ad664d63ffb17d3bb97" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/33/fb/53587a89fbc00799e4179796f51b3ad713c5de6bb680b2becb6d37c94649/huggingface_hub-0.33.0-py3-none-any.whl", hash = "sha256:e8668875b40c68f9929150d99727d39e5ebb8a05a98e4191b908dc7ded9074b3" }, +] + +[[package]] +name = "humanfriendly" +version = "10.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "pyreadline3", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" }, +] + +[[package]] +name = "modelscope" +version = "1.27.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "requests" }, + { name = "setuptools" }, + { name = "tqdm" }, + { name = "urllib3" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/d0/e4/65e731300f2ed7dc02965bcbc0cfa74c38a27dabbefcdf7a2e2893bbf50c/modelscope-1.27.1.tar.gz", hash = "sha256:a74d2ef7f2decf8c0a59ef35b46f07452026074587e5bb5c736fbef2df13ec1c" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2f/14/027c49872c9f1087a1b9f604a81d5584324d84b1540a88b071e41eaca5b7/modelscope-1.27.1-py3-none-any.whl", hash = "sha256:2b67656e41fab77a9b278ccb6fceac541971f54a7d8b74700c1ffdcd290a3394" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c" }, +] + +[[package]] +name = "numpy" +version = "2.3.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f3/db/8e12381333aea300890829a0a36bfa738cac95475d88982d538725143fd9/numpy-2.3.0.tar.gz", hash = "sha256:581f87f9e9e9db2cba2141400e160e9dd644ee248788d6f90636eeb8fd9260a6" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/89/59/9df493df81ac6f76e9f05cdbe013cdb0c9a37b434f6e594f5bd25e278908/numpy-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:389b85335838155a9076e9ad7f8fdba0827496ec2d2dc32ce69ce7898bde03ba" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2f/86/4ff04335901d6cf3a6bb9c748b0097546ae5af35e455ae9b962ebff4ecd7/numpy-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9498f60cd6bb8238d8eaf468a3d5bb031d34cd12556af53510f05fcf581c1b7e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/71/8d/a942cd4f959de7f08a79ab0c7e6cecb7431d5403dce78959a726f0f57aa1/numpy-2.3.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:622a65d40d8eb427d8e722fd410ac3ad4958002f109230bc714fa551044ebae2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/86/5d/45850982efc7b2c839c5626fb67fbbc520d5b0d7c1ba1ae3651f2f74c296/numpy-2.3.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b9446d9d8505aadadb686d51d838f2b6688c9e85636a0c3abaeb55ed54756459" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/1a/c0/c871d4a83f93b00373d3eebe4b01525eee8ef10b623a335ec262b58f4dc1/numpy-2.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:50080245365d75137a2bf46151e975de63146ae6d79f7e6bd5c0e85c9931d06a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b7/f6/bc47f5fa666d5ff4145254f9e618d56e6a4ef9b874654ca74c19113bb538/numpy-2.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c24bb4113c66936eeaa0dc1e47c74770453d34f46ee07ae4efd853a2ed1ad10a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f5/b4/65f48009ca0c9b76df5f404fccdea5a985a1bb2e34e97f21a17d9ad1a4ba/numpy-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4d8d294287fdf685281e671886c6dcdf0291a7c19db3e5cb4178d07ccf6ecc67" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/62/5367855a2018578e9334ed08252ef67cc302e53edc869666f71641cad40b/numpy-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6295f81f093b7f5769d1728a6bd8bf7466de2adfa771ede944ce6711382b89dc" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d4/75/5baed8cd867eabee8aad1e74d7197d73971d6a3d40c821f1848b8fab8b84/numpy-2.3.0-cp312-cp312-win32.whl", hash = "sha256:e6648078bdd974ef5d15cecc31b0c410e2e24178a6e10bf511e0557eed0f2570" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/bc/49/d5781eaa1a15acb3b3a3f49dc9e2ff18d92d0ce5c2976f4ab5c0a7360250/numpy-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:0898c67a58cdaaf29994bc0e2c65230fd4de0ac40afaf1584ed0b02cd74c6fdd" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c2/1c/6d343e030815c7c97a1f9fbad00211b47717c7fe446834c224bd5311e6f1/numpy-2.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:bd8df082b6c4695753ad6193018c05aac465d634834dca47a3ae06d4bb22d9ea" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/73/fc/1d67f751fd4dbafc5780244fe699bc4084268bad44b7c5deb0492473127b/numpy-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5754ab5595bfa2c2387d241296e0381c21f44a4b90a776c3c1d39eede13a746a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e8/95/73ffdb69e5c3f19ec4530f8924c4386e7ba097efc94b9c0aff607178ad94/numpy-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d11fa02f77752d8099573d64e5fe33de3229b6632036ec08f7080f46b6649959" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/64/d5/06d4bb31bb65a1d9c419eb5676173a2f90fd8da3c59f816cc54c640ce265/numpy-2.3.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:aba48d17e87688a765ab1cd557882052f238e2f36545dfa8e29e6a91aef77afe" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/12/8b/6c2cef44f8ccdc231f6b56013dff1d71138c48124334aded36b1a1b30c5a/numpy-2.3.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4dc58865623023b63b10d52f18abaac3729346a7a46a778381e0e3af4b7f3beb" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/62/aa/fca4bf8de3396ddb59544df9b75ffe5b73096174de97a9492d426f5cd4aa/numpy-2.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:df470d376f54e052c76517393fa443758fefcdd634645bc9c1f84eafc67087f0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/1c/12/734dce1087eed1875f2297f687e671cfe53a091b6f2f55f0c7241aad041b/numpy-2.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:87717eb24d4a8a64683b7a4e91ace04e2f5c7c77872f823f02a94feee186168f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/48/03/ffa41ade0e825cbcd5606a5669962419528212a16082763fc051a7247d76/numpy-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d8fa264d56882b59dcb5ea4d6ab6f31d0c58a57b41aec605848b6eb2ef4a43e8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/07/58/869398a11863310aee0ff85a3e13b4c12f20d032b90c4b3ee93c3b728393/numpy-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e651756066a0eaf900916497e20e02fe1ae544187cb0fe88de981671ee7f6270" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2f/8a/5756935752ad278c17e8a061eb2127c9a3edf4ba2c31779548b336f23c8d/numpy-2.3.0-cp313-cp313-win32.whl", hash = "sha256:e43c3cce3b6ae5f94696669ff2a6eafd9a6b9332008bafa4117af70f4b88be6f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/08/60/61d60cf0dfc0bf15381eaef46366ebc0c1a787856d1db0c80b006092af84/numpy-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:81ae0bf2564cf475f94be4a27ef7bcf8af0c3e28da46770fc904da9abd5279b5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/66/31/2f2f2d2b3e3c32d5753d01437240feaa32220b73258c9eef2e42a0832866/numpy-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:c8738baa52505fa6e82778580b23f945e3578412554d937093eac9205e845e6e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/89/c7828f23cc50f607ceb912774bb4cff225ccae7131c431398ad8400e2c98/numpy-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:39b27d8b38942a647f048b675f134dd5a567f95bfff481f9109ec308515c51d8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/dd/46/79ecf47da34c4c50eedec7511e53d57ffdfd31c742c00be7dc1d5ffdb917/numpy-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0eba4a1ea88f9a6f30f56fdafdeb8da3774349eacddab9581a21234b8535d3d3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/59/44/f6caf50713d6ff4480640bccb2a534ce1d8e6e0960c8f864947439f0ee95/numpy-2.3.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:b0f1f11d0a1da54927436505a5a7670b154eac27f5672afc389661013dfe3d4f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a6/43/e1fd1aca7c97e234dd05e66de4ab7a5be54548257efcdd1bc33637e72102/numpy-2.3.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:690d0a5b60a47e1f9dcec7b77750a4854c0d690e9058b7bef3106e3ae9117808" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/84/89/f76f93b06a03177c0faa7ca94d0856c4e5c4bcaf3c5f77640c9ed0303e1c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8b51ead2b258284458e570942137155978583e407babc22e3d0ed7af33ce06f8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/aa/f5/4858c3e9ff7a7d64561b20580cf7cc5d085794bd465a19604945d6501f6c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:aaf81c7b82c73bd9b45e79cfb9476cb9c29e937494bfe9092c26aece812818ad" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/08/17/0e3b4182e691a10e9483bcc62b4bb8693dbf9ea5dc9ba0b77a60435074bb/numpy-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f420033a20b4f6a2a11f585f93c843ac40686a7c3fa514060a97d9de93e5e72b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4e/d5/463279fda028d3c1efa74e7e8d507605ae87f33dbd0543cf4c4527c8b882/numpy-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d344ca32ab482bcf8735d8f95091ad081f97120546f3d250240868430ce52555" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0e/1e/7a9d98c886d4c39a2b4d3a7c026bffcf8fbcaf518782132d12a301cfc47a/numpy-2.3.0-cp313-cp313t-win32.whl", hash = "sha256:48a2e8eaf76364c32a1feaa60d6925eaf32ed7a040183b807e02674305beef61" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fe/ab/66fc909931d5eb230107d016861824f335ae2c0533f422e654e5ff556784/numpy-2.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ba17f93a94e503551f154de210e4d50c5e3ee20f7e7a1b5f6ce3f22d419b93bb" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ee/e8/2c8a1c9e34d6f6d600c83d5ce5b71646c32a13f34ca5c518cc060639841c/numpy-2.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:f14e016d9409680959691c109be98c436c6249eaf7f118b424679793607b5944" }, +] + +[[package]] +name = "onnxruntime" +version = "1.22.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "coloredlogs" }, + { name = "flatbuffers" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "sympy" }, +] +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4d/de/9162872c6e502e9ac8c99a98a8738b2fab408123d11de55022ac4f92562a/onnxruntime-1.22.0-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:f3c0380f53c1e72a41b3f4d6af2ccc01df2c17844072233442c3a7e74851ab97" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/03/79/36f910cd9fc96b444b0e728bba14607016079786adf032dae61f7c63b4aa/onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8601128eaef79b636152aea76ae6981b7c9fc81a618f584c15d78d42b310f1c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8c/60/16d219b8868cc8e8e51a68519873bdb9f5f24af080b62e917a13fff9989b/onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6964a975731afc19dc3418fad8d4e08c48920144ff590149429a5ebe0d15fb3c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/36/b4/3f1c71ce1d3d21078a6a74c5483bfa2b07e41a8d2b8fb1e9993e6a26d8d3/onnxruntime-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0d534a43d1264d1273c2d4f00a5a588fa98d21117a3345b7104fa0bbcaadb9a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a9/65/5cb5018d5b0b7cba820d2c4a1d1b02d40df538d49138ba36a509457e4df6/onnxruntime-1.22.0-cp313-cp313-macosx_13_0_universal2.whl", hash = "sha256:fe7c051236aae16d8e2e9ffbfc1e115a0cc2450e873a9c4cb75c0cc96c1dae07" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e1/89/1dfe1b368831d1256b90b95cb8d11da8ab769febd5c8833ec85ec1f79d21/onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a6bbed10bc5e770c04d422893d3045b81acbbadc9fb759a2cd1ca00993da919" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/1e/70/342514ade3a33ad9dd505dcee96ff1f0e7be6d0e6e9c911fe0f1505abf42/onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe45ee3e756300fccfd8d61b91129a121d3d80e9d38e01f03ff1295badc32b8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/3e/89/2f64e250945fa87140fb917ba377d6d0e9122e029c8512f389a9b7f953f4/onnxruntime-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:5a31d84ef82b4b05d794a4ce8ba37b0d9deb768fd580e36e17b39e0b4840253b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/9f/48/d61d5f1ed098161edd88c56cbac49207d7b7b149e613d2cd7e33176c63b3/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2ac5bd9205d831541db4e508e586e764a74f14efdd3f89af7fd20e1bf4a1ed" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c3/16/873b955beda7bada5b0d798d3a601b2ff210e44ad5169f6d405b93892103/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64845709f9e8a2809e8e009bc4c8f73b788cee9c6619b7d9930344eae4c9cd36" }, +] + +[[package]] +name = "onnxruntime-embedding-rerank-server" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "fastapi" }, + { name = "modelscope" }, + { name = "onnxruntime" }, + { name = "sentencepiece" }, + { name = "tiktoken" }, + { name = "transformers" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", specifier = ">=0.115.13" }, + { name = "modelscope", specifier = ">=1.27.1" }, + { name = "onnxruntime", specifier = ">=1.22.0" }, + { name = "sentencepiece", specifier = ">=0.2.0" }, + { name = "tiktoken", specifier = ">=0.9.0" }, + { name = "transformers", specifier = ">=4.52.4" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484" }, +] + +[[package]] +name = "protobuf" +version = "6.31.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/52/f3/b9655a711b32c19720253f6f06326faf90580834e2e83f840472d752bc8b/protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f3/6f/6ab8e4bf962fd5570d3deaa2d5c38f0a363f57b4501047b5ebeb83ab1125/protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/44/3a/b15c4347dd4bf3a1b0ee882f384623e2063bb5cf9fa9d57990a4f7df2fb6/protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6a/c9/b9689a2a250264a84e66c46d8862ba788ee7a641cdca39bccf64f59284b7/protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f1227473dc43d44ed644425268eb7c2e488ae245d51c6866d19fe158e207402" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/76/a1/7a5a94032c83375e4fe7e7f56e3976ea6ac90c5e85fac8576409e25c39c3/protobuf-6.31.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fa/b1/b59d405d64d31999244643d88c45c8241c58f17cc887e73bcb90602327f8/protobuf-6.31.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4ee898bf66f7a8b0bd21bce523814e6fbd8c6add948045ce958b73af7e8878c6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f7/af/ab3c51ab7507a7325e98ffe691d9495ee3d3aa5f589afad65ec920d39821/protobuf-6.31.1-py3-none-any.whl", hash = "sha256:720a6c7e6b77288b85063569baae8536671b39f15cc22037ec7045658d80489e" }, +] + +[[package]] +name = "pydantic" +version = "2.11.7" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9" }, +] + +[[package]] +name = "pyreadline3" +version = "3.5.4" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz", hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563" }, +] + +[[package]] +name = "regex" +version = "2024.11.6" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a" }, +] + +[[package]] +name = "requests" +version = "2.32.4" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c" }, +] + +[[package]] +name = "safetensors" +version = "0.5.3" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/71/7e/2d5d6ee7b40c0682315367ec7475693d110f512922d582fef1bd4a63adc3/safetensors-0.5.3.tar.gz", hash = "sha256:b6b0d6ecacec39a4fdd99cc19f4576f5219ce858e6fd8dbe7609df0b8dc56965" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/18/ae/88f6c49dbd0cc4da0e08610019a3c78a7d390879a919411a410a1876d03a/safetensors-0.5.3-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bd20eb133db8ed15b40110b7c00c6df51655a2998132193de2f75f72d99c7073" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b8/3b/11f1b4a2f5d2ab7da34ecc062b0bc301f2be024d110a6466726bec8c055c/safetensors-0.5.3-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:21d01c14ff6c415c485616b8b0bf961c46b3b343ca59110d38d744e577f9cce7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/5d/9a/add3e6fef267658075c5a41573c26d42d80c935cdc992384dfae435feaef/safetensors-0.5.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11bce6164887cd491ca75c2326a113ba934be596e22b28b1742ce27b1d076467" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/df/5c/bf2cae92222513cc23b3ff85c4a1bb2811a2c3583ac0f8e8d502751de934/safetensors-0.5.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4a243be3590bc3301c821da7a18d87224ef35cbd3e5f5727e4e0728b8172411e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/58/11/7456afb740bd45782d0f4c8e8e1bb9e572f1bf82899fb6ace58af47b4282/safetensors-0.5.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8bd84b12b1670a6f8e50f01e28156422a2bc07fb16fc4e98bded13039d688a0d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/57/3d/fe73a9d2ace487e7285f6e157afee2383bd1ddb911b7cb44a55cf812eae3/safetensors-0.5.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:391ac8cab7c829452175f871fcaf414aa1e292b5448bd02620f675a7f3e7abb9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a6/f8/dae3421624fcc87a89d42e1898a798bc7ff72c61f38973a65d60df8f124c/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cead1fa41fc54b1e61089fa57452e8834f798cb1dc7a09ba3524f1eb08e0317a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ce/20/1fbe16f9b815f6c5a672f5b760951e20e17e43f67f231428f871909a37f6/safetensors-0.5.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1077f3e94182d72618357b04b5ced540ceb71c8a813d3319f1aba448e68a770d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/5f/18/8e108846b506487aa4629fe4116b27db65c3dde922de2c8e0cc1133f3f29/safetensors-0.5.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:799021e78287bac619c7b3f3606730a22da4cda27759ddf55d37c8db7511c74b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/82/5a/c116111d8291af6c8c8a8b40628fe833b9db97d8141c2a82359d14d9e078/safetensors-0.5.3-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:df26da01aaac504334644e1b7642fa000bfec820e7cef83aeac4e355e03195ff" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/7d/ff/41fcc4d3b7de837963622e8610d998710705bbde9a8a17221d85e5d0baad/safetensors-0.5.3-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:32c3ef2d7af8b9f52ff685ed0bc43913cdcde135089ae322ee576de93eae5135" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/40/ad/2b113098e69c985a3d8fbda4b902778eae4a35b7d5188859b4a63d30c161/safetensors-0.5.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:37f1521be045e56fc2b54c606d4455573e717b2d887c579ee1dbba5f868ece04" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0a/0c/95aeb51d4246bd9a3242d3d8349c1112b4ee7611a4b40f0c5c93b05f001d/safetensors-0.5.3-cp38-abi3-win32.whl", hash = "sha256:cfc0ec0846dcf6763b0ed3d1846ff36008c6e7290683b61616c4b040f6a54ace" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/69/e2/b011c38e5394c4c18fb5500778a55ec43ad6106126e74723ffaee246f56e/safetensors-0.5.3-cp38-abi3-win_amd64.whl", hash = "sha256:836cbbc320b47e80acd40e44c8682db0e8ad7123209f69b093def21ec7cafd11" }, +] + +[[package]] +name = "sentencepiece" +version = "0.2.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/c9/d2/b9c7ca067c26d8ff085d252c89b5f69609ca93fb85a00ede95f4857865d4/sentencepiece-0.2.0.tar.gz", hash = "sha256:a52c19171daaf2e697dc6cbe67684e0fa341b1248966f6aebb541de654d15843" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/27/5a/141b227ed54293360a9ffbb7bf8252b4e5efc0400cdeac5809340e5d2b21/sentencepiece-0.2.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ea5f536e32ea8ec96086ee00d7a4a131ce583a1b18d130711707c10e69601cb2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2e/08/a4c135ad6fc2ce26798d14ab72790d66e813efc9589fd30a5316a88ca8d5/sentencepiece-0.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d0cb51f53b6aae3c36bafe41e86167c71af8370a039f542c43b0cce5ef24a68c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/49/0a/2fe387f825ac5aad5a0bfe221904882106cac58e1b693ba7818785a882b6/sentencepiece-0.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3212121805afc58d8b00ab4e7dd1f8f76c203ddb9dc94aa4079618a31cf5da0f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/cc/38/e4698ee2293fe4835dc033c49796a39b3eebd8752098f6bd0aa53a14af1f/sentencepiece-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a3149e3066c2a75e0d68a43eb632d7ae728c7925b517f4c05c40f6f7280ce08" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/12/24/fd7ef967c9dad2f6e6e5386d0cadaf65cda8b7be6e3861a9ab3121035139/sentencepiece-0.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:632f3594d3e7ac8b367bca204cb3fd05a01d5b21455acd097ea4c0e30e2f63d7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4f/d2/18246f43ca730bb81918f87b7e886531eda32d835811ad9f4657c54eee35/sentencepiece-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f295105c6bdbb05bd5e1b0cafbd78ff95036f5d3641e7949455a3f4e5e7c3109" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8a/47/ca237b562f420044ab56ddb4c278672f7e8c866e183730a20e413b38a989/sentencepiece-0.2.0-cp312-cp312-win32.whl", hash = "sha256:fb89f811e5efd18bab141afc3fea3de141c3f69f3fe9e898f710ae7fe3aab251" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/c6/97/d159c32642306ee2b70732077632895438867b3b6df282354bd550cf2a67/sentencepiece-0.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a673a72aab81fef5ebe755c6e0cc60087d1f3a4700835d40537183c1703a45f" }, +] + +[[package]] +name = "setuptools" +version = "80.9.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2" }, +] + +[[package]] +name = "starlette" +version = "0.46.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/ce/20/08dfcd9c983f6a6f4a1000d934b9e6d626cff8d2eeb77a89a68eef20a2b7/starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8b/0c/9d30a4ebeb6db2b25a841afbb80f6ef9a854fc3b41be131d249a977b4959/starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5" }, +] + +[[package]] +name = "tiktoken" +version = "0.9.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/ea/cf/756fedf6981e82897f2d570dd25fa597eb3f4459068ae0572d7e888cfd6f/tiktoken-0.9.0.tar.gz", hash = "sha256:d02a5ca6a938e0490e1ff957bc48c8b078c88cb83977be1625b1fd8aac792c5d" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/cf/e5/21ff33ecfa2101c1bb0f9b6df750553bd873b7fb532ce2cb276ff40b197f/tiktoken-0.9.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e88f121c1c22b726649ce67c089b90ddda8b9662545a8aeb03cfef15967ddd03" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8e/03/a95e7b4863ee9ceec1c55983e4cc9558bcfd8f4f80e19c4f8a99642f697d/tiktoken-0.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a6600660f2f72369acb13a57fb3e212434ed38b045fd8cc6cdd74947b4b5d210" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/40/10/1305bb02a561595088235a513ec73e50b32e74364fef4de519da69bc8010/tiktoken-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95e811743b5dfa74f4b227927ed86cbc57cad4df859cb3b643be797914e41794" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/1b/40/da42522018ca496432ffd02793c3a72a739ac04c3794a4914570c9bb2925/tiktoken-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99376e1370d59bcf6935c933cb9ba64adc29033b7e73f5f7569f3aad86552b22" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/5c/41/1e59dddaae270ba20187ceb8aa52c75b24ffc09f547233991d5fd822838b/tiktoken-0.9.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:badb947c32739fb6ddde173e14885fb3de4d32ab9d8c591cbd013c22b4c31dd2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/5b/64/b16003419a1d7728d0d8c0d56a4c24325e7b10a21a9dd1fc0f7115c02f0a/tiktoken-0.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:5a62d7a25225bafed786a524c1b9f0910a1128f4232615bf3f8257a73aaa3b16" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/7a/11/09d936d37f49f4f494ffe660af44acd2d99eb2429d60a57c71318af214e0/tiktoken-0.9.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2b0e8e05a26eda1249e824156d537015480af7ae222ccb798e5234ae0285dbdb" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/80/0e/f38ba35713edb8d4197ae602e80837d574244ced7fb1b6070b31c29816e0/tiktoken-0.9.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:27d457f096f87685195eea0165a1807fae87b97b2161fe8c9b1df5bd74ca6f63" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fe/82/9197f77421e2a01373e27a79dd36efdd99e6b4115746ecc553318ecafbf0/tiktoken-0.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cf8ded49cddf825390e36dd1ad35cd49589e8161fdcb52aa25f0583e90a3e01" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f2/bb/4513da71cac187383541facd0291c4572b03ec23c561de5811781bbd988f/tiktoken-0.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc156cb314119a8bb9748257a2eaebd5cc0753b6cb491d26694ed42fc7cb3139" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fa/5c/74e4c137530dd8504e97e3a41729b1103a4ac29036cbfd3250b11fd29451/tiktoken-0.9.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cd69372e8c9dd761f0ab873112aba55a0e3e506332dd9f7522ca466e817b1b7a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/de/a8/8f499c179ec900783ffe133e9aab10044481679bb9aad78436d239eee716/tiktoken-0.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:5ea0edb6f83dc56d794723286215918c1cde03712cbbafa0348b33448faf5b95" }, +] + +[[package]] +name = "tokenizers" +version = "0.21.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "huggingface-hub" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/92/76/5ac0c97f1117b91b7eb7323dcd61af80d72f790b4df71249a7850c195f30/tokenizers-0.21.1.tar.gz", hash = "sha256:a1bb04dc5b448985f86ecd4b05407f5a8d97cb2c0532199b2a302a604a0165ab" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a5/1f/328aee25f9115bf04262e8b4e5a2050b7b7cf44b59c74e982db7270c7f30/tokenizers-0.21.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e78e413e9e668ad790a29456e677d9d3aa50a9ad311a40905d6861ba7692cf41" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ae/1a/4526797f3719b0287853f12c5ad563a9be09d446c44ac784cdd7c50f76ab/tokenizers-0.21.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:cd51cd0a91ecc801633829fcd1fda9cf8682ed3477c6243b9a095539de4aecf3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/4d/7a/a209b29f971a9fdc1da86f917fe4524564924db50d13f0724feed37b2a4d/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28da6b72d4fb14ee200a1bd386ff74ade8992d7f725f2bde2c495a9a98cf4d9f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/3c/1e/b788b50ffc6191e0b1fc2b0d49df8cff16fe415302e5ceb89f619d12c5bc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:34d8cfde551c9916cb92014e040806122295a6800914bab5865deb85623931cf" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/36/aa/3626dfa09a0ecc5b57a8c58eeaeb7dd7ca9a37ad9dd681edab5acd55764c/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaa852d23e125b73d283c98f007e06d4595732104b65402f46e8ef24b588d9f8" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a4/4d/8fbc203838b3d26269f944a89459d94c858f5b3f9a9b6ee9728cdcf69161/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a21a15d5c8e603331b8a59548bbe113564136dc0f5ad8306dd5033459a226da0" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d8/1b/2bd062adeb7c7511b847b32e356024980c0ffcf35f28947792c2d8ad2288/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fdbd4c067c60a0ac7eca14b6bd18a5bebace54eb757c706b47ea93204f7a37c" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/8a/63/38be071b0c8e06840bc6046991636bcb30c27f6bb1e670f4f4bc87cf49cc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dd9a0061e403546f7377df940e866c3e678d7d4e9643d0461ea442b4f89e61a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ec/83/afa94193c09246417c23a3c75a8a0a96bf44ab5630a3015538d0c316dd4b/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:db9484aeb2e200c43b915a1a0150ea885e35f357a5a8fabf7373af333dcc8dbf" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ae/b3/0e1a37d4f84c0f014d43701c11eb8072704f6efe8d8fc2dcdb79c47d76de/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed248ab5279e601a30a4d67bdb897ecbe955a50f1e7bb62bd99f07dd11c2f5b6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ac/33/ff08f50e6d615eb180a4a328c65907feb6ded0b8f990ec923969759dc379/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:9ac78b12e541d4ce67b4dfd970e44c060a2147b9b2a21f509566d556a509c67d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/5f/aa/8ae85f69a9f6012c6f8011c6f4aa1c96154c816e9eea2e1b758601157833/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e5a69c1a4496b81a5ee5d2c1f3f7fbdf95e90a0196101b0ee89ed9956b8a168f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e8/5b/a5d98c89f747455e8b7a9504910c865d5e51da55e825a7ae641fb5ff0a58/tokenizers-0.21.1-cp39-abi3-win32.whl", hash = "sha256:1039a3a5734944e09de1d48761ade94e00d0fa760c0e0551151d4dd851ba63e3" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e6/b6/072a8e053ae600dcc2ac0da81a23548e3b523301a442a6ca900e92ac35be/tokenizers-0.21.1-cp39-abi3-win_amd64.whl", hash = "sha256:0f0dcbcc9f6e13e675a66d7a5f2f225a736745ce484c1a4e07476a89ccdad382" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2" }, +] + +[[package]] +name = "transformers" +version = "4.52.4" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "filelock" }, + { name = "huggingface-hub" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "regex" }, + { name = "requests" }, + { name = "safetensors" }, + { name = "tokenizers" }, + { name = "tqdm" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/da/a9/275037087f9d846580b02f2d7cae0e0a6955d46f84583d0151d6227bd416/transformers-4.52.4.tar.gz", hash = "sha256:aff3764441c1adc192a08dba49740d3cbbcb72d850586075aed6bd89b98203e6" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/96/f2/25b27b396af03d5b64e61976b14f7209e2939e9e806c10749b6d277c273e/transformers-4.52.4-py3-none-any.whl", hash = "sha256:203f5c19416d5877e36e88633943761719538a25d9775977a24fe77a1e5adfc7" }, +] + +[[package]] +name = "typing-extensions" +version = "4.14.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/d1/bc/51647cd02527e87d05cb083ccc402f93e441606ff1f01739a62c8ad09ba5/typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/69/e0/552843e0d356fbb5256d21449fa957fa4eff3bbc135a74a691ee70c7c5da/typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc" }, +] From 32d578bcfe35fc7bfa34e75b70d46e35dc6c3a34 Mon Sep 17 00:00:00 2001 From: szlele <595128841@qq.com> Date: Tue, 29 Jul 2025 15:25:24 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=9F=BA=E4=BA=8Enpu?= =?UTF-8?q?=E7=9A=84server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/rerank_client.py | 4 +- vllm-ascend-rerank-server/main.py | 61 ++++++ vllm-ascend-rerank-server/rerank_provider.py | 43 ++++ vllm-ascend-rerank-server/test.py | 29 +++ vllm-embedding-rerank-server/.python-version | 1 + vllm-embedding-rerank-server/Dockerfile | 14 ++ vllm-embedding-rerank-server/README.md | 1 + .../app/embedding_provider.py | 19 ++ vllm-embedding-rerank-server/app/main.py | 63 ++++++ vllm-embedding-rerank-server/app/models.py | 19 ++ vllm-embedding-rerank-server/app/test.py | 10 + vllm-embedding-rerank-server/pyproject.toml | 10 + vllm-embedding-rerank-server/uv.lock | 207 ++++++++++++++++++ 13 files changed, 479 insertions(+), 2 deletions(-) create mode 100644 vllm-ascend-rerank-server/main.py create mode 100644 vllm-ascend-rerank-server/rerank_provider.py create mode 100644 vllm-ascend-rerank-server/test.py create mode 100644 vllm-embedding-rerank-server/.python-version create mode 100644 vllm-embedding-rerank-server/Dockerfile create mode 100644 vllm-embedding-rerank-server/README.md create mode 100644 vllm-embedding-rerank-server/app/embedding_provider.py create mode 100644 vllm-embedding-rerank-server/app/main.py create mode 100644 vllm-embedding-rerank-server/app/models.py create mode 100644 vllm-embedding-rerank-server/app/test.py create mode 100644 vllm-embedding-rerank-server/pyproject.toml create mode 100644 vllm-embedding-rerank-server/uv.lock diff --git a/onnxruntime-embedding-rerank-server/test/rerank_client.py b/onnxruntime-embedding-rerank-server/test/rerank_client.py index 106cad8..c5cb623 100644 --- a/onnxruntime-embedding-rerank-server/test/rerank_client.py +++ b/onnxruntime-embedding-rerank-server/test/rerank_client.py @@ -2,7 +2,7 @@ import numpy as np import string -client = HttpClient("http://127.0.0.1:9997/v1") +client = HttpClient("http://115.120.51.57:11558/v1") query = "抗生素是谁发现的?请说明发现过程和时间。" documents = [ @@ -14,7 +14,7 @@ ] payload = { - "model": "bce", + "model": "Qwen/Qwen3-Reranker-8B", "query": query, "documents": documents, "top_n": 3, # 可选参数 diff --git a/vllm-ascend-rerank-server/main.py b/vllm-ascend-rerank-server/main.py new file mode 100644 index 0000000..bc1f973 --- /dev/null +++ b/vllm-ascend-rerank-server/main.py @@ -0,0 +1,61 @@ +import os,uvicorn +from pydantic import BaseModel +from fastapi import FastAPI,Request +from fastapi.concurrency import asynccontextmanager +from rerank_provider import RerankProvider + +@asynccontextmanager +async def lifespan(app:FastAPI): + app.state.rerank_engine = RerankProvider() + yield + app.state.rerank_engine.destroy() + +app = FastAPI( + title="Rerank Inference Server", + lifespan=lifespan, + root_path="/v1", + version="1.0", + license_info={"name":"Apache License 2.0","identifier":"Apache"} + ) + +class RerankRequest(BaseModel): + model: str + query: str + top_n: int + return_documents: bool + documents: list[str] + +class RerankData(BaseModel): + index: int + relevance_score: float + document: str + +class RerankResponse(BaseModel): + model: str + results: list[RerankData] + +@app.post("/rerank", response_model=RerankResponse, summary="文本重排序") +def text_rerank(request: Request,rerank_request:RerankRequest) -> RerankResponse: + query = rerank_request.query + documents = rerank_request.documents + top_n = rerank_request.top_n + return_documents = rerank_request.return_documents + + engine:RerankProvider = request.app.state.rerank_engine + results = engine.rerank(query,documents,top_n,return_documents) + + rerank_datas = [ + RerankData( + index = result['id'], + relevance_score = result['score'], + document = result['document'], + ) + for result in results + ] + return RerankResponse( + model = rerank_request.model, + results = rerank_datas + ) + +if __name__ == "__main__": + uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file diff --git a/vllm-ascend-rerank-server/rerank_provider.py b/vllm-ascend-rerank-server/rerank_provider.py new file mode 100644 index 0000000..8dcff73 --- /dev/null +++ b/vllm-ascend-rerank-server/rerank_provider.py @@ -0,0 +1,43 @@ +import heapq +from vllm.distributed.parallel_state import destroy_model_parallel +from vllm import LLM +from typing import List + +class RerankProvider: + + def __init__(self): + self.prefix = '<|im_start|>system\nJudge whether the Document meets the requirements based on the Query and the Instruct provided. Note that the answer can only be "yes" or "no".<|im_end|>\n<|im_start|>user\n' + self.suffix = "<|im_end|>\n<|im_start|>assistant\n\n\n\n\n" + self.query_template = "{prefix}: Given a web search query, retrieve relevant passages that answer the query\n: {query}\n" + self.document_template = ": {doc}{suffix}" + + self.model = LLM( + model='Qwen/Qwen3-Reranker-8B', + task="score", + hf_overrides={ + "architectures": ["Qwen3ForSequenceClassification"], + "classifier_from_token": ["no", "yes"], + "is_original_qwen3_reranker": True, + }, + tensor_parallel_size=1, + max_model_len=10000, + enable_prefix_caching=True, + gpu_memory_utilization=0.5) + + def destroy(): + destroy_model_parallel() + + def rerank(self,query:str,documents:List[str],top_n:int,return_documents:bool=False): + query_in = self.query_template.format(prefix=self.prefix, query=query) + documents_in = [self.document_template.format(doc=doc, suffix=self.suffix) for doc in documents] + outputs = self.model.score(query_in,documents_in) + + all_pairs = [ + {'id': index, 'score': output.outputs.score, 'document': documents[index] if return_documents else ""} + for index, output in enumerate(outputs) + ] + + if top_n is not None: + return heapq.nlargest(top_n, all_pairs, key=lambda x: x['score']) + else: + return all_pairs \ No newline at end of file diff --git a/vllm-ascend-rerank-server/test.py b/vllm-ascend-rerank-server/test.py new file mode 100644 index 0000000..5d88deb --- /dev/null +++ b/vllm-ascend-rerank-server/test.py @@ -0,0 +1,29 @@ +from requests import request +from json import dumps + +url = "http://115.120.51.57:11558/v1/rerank" +query = "抗生素是谁发现的?请说明发现过程和时间。" +documents = [ + "路易·巴斯德是微生物学之父,提出了巴氏杀菌法,对疫苗研发有重大贡献。" , # 不相关(无关人物) + "亚历山大·弗莱明于1928年偶然发现青霉素。他在实验室中发现霉菌抑制了葡萄球菌的生长,这一发现开启了抗生素时代。", # 完全相关(直接回答核心问题) + "抗生素的滥用可能导致耐药性细菌的产生,世界卫生组织已将其列为全球健康威胁。" , # 弱相关(提及抗生素但未回答发现者) + "1928年9月28日,弗莱明在伦敦圣玛丽医院记录到青霉素的抑菌效应,但未能纯化该物质。", # 中等相关(提供时间但未完整回答过程) + "弗莱明因发现青霉素获得1945年诺贝尔生理学或医学奖,但青霉素的大规模生产由霍华德·弗洛里和厄恩斯特·钱恩实现。", # 高度相关(补充关键细节) +] + +payload = { + "model": "Qwen/Qwen3-Reranker-8B", + "query": query, + "documents": documents, + "top_n": 3, # 可选参数 + "return_documents": True # 可选参数 +} +response = request("post", url, json=payload) +response.raise_for_status() +results = response.json() + +print(results) + +''' +{'model': 'Qwen/Qwen3-Reranker-8B', 'results': [{'index': 2, 'relevance_score': 0.999783456325531, 'document': '亚历山大·弗莱明于1928年偶然发现青霉素。他在实验室中发现霉菌抑制了葡萄球菌的生长,这一发现开启了抗生素时代。'}, {'index': 4, 'relevance_score': 0.9525741338729858, 'document': '1928年9月28日,弗莱明在伦敦圣玛丽医院记录到青霉素的抑菌效应,但未能纯化该物质。'}, {'index': 5, 'relevance_score': 0.9032942056655884, 'document': '弗莱明因发现青霉素获得1945年诺贝尔生理学或医学奖,但青霉素的大规模生产由霍华德·弗洛里和厄恩斯特·钱恩实现。'}]} +''' \ No newline at end of file diff --git a/vllm-embedding-rerank-server/.python-version b/vllm-embedding-rerank-server/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/vllm-embedding-rerank-server/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/vllm-embedding-rerank-server/Dockerfile b/vllm-embedding-rerank-server/Dockerfile new file mode 100644 index 0000000..e9d3e4e --- /dev/null +++ b/vllm-embedding-rerank-server/Dockerfile @@ -0,0 +1,14 @@ +FROM quay.io/ascend/vllm-ascend:v0.9.2rc1 + +RUN pip config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple \ + && pip install fastapi uvicorn + +WORKDIR /workspace +RUN mkdir -p /root/.cache/modelscope/hub/models/Qwen + +COPY ./app . +COPY /root/.cache/modelscope/hub/models/Qwen/Qwen3-Reranker-8B /root/.cache/modelscope/hub/models/Qwen/Qwen3-Reranker-8B + +CMD ["python","main.py"] + +# docker build -t vllm-qwen3-rerank-server . \ No newline at end of file diff --git a/vllm-embedding-rerank-server/README.md b/vllm-embedding-rerank-server/README.md new file mode 100644 index 0000000..cec9f7a --- /dev/null +++ b/vllm-embedding-rerank-server/README.md @@ -0,0 +1 @@ +### 在昇腾NPU上基于VLLM部署Qwen3-Embedding-8B和Qwen3-Rerank-8B diff --git a/vllm-embedding-rerank-server/app/embedding_provider.py b/vllm-embedding-rerank-server/app/embedding_provider.py new file mode 100644 index 0000000..b10b597 --- /dev/null +++ b/vllm-embedding-rerank-server/app/embedding_provider.py @@ -0,0 +1,19 @@ +from typing import List +import torch +from vllm import LLM +from vllm.distributed.parallel_state import destroy_model_parallel + +class EmbeddingProvider: + + def __init__(self): + self.task = 'Given a web search query, retrieve relevant passages that answer the query' + self.model = LLM(model="Qwen/Qwen3-Embedding-8B", task="embed") + + def destroy(): + destroy_model_parallel() + + def embedding(self,documents:List[str]): + outputs = self.model.embed(documents) + embeddings = torch.tensor([o.outputs.embedding for o in outputs]) + scores = (embeddings[:2] @ embeddings[2:].T) + return scores.tolist() \ No newline at end of file diff --git a/vllm-embedding-rerank-server/app/main.py b/vllm-embedding-rerank-server/app/main.py new file mode 100644 index 0000000..f6a35ee --- /dev/null +++ b/vllm-embedding-rerank-server/app/main.py @@ -0,0 +1,63 @@ +import uvicorn +from typing import Union +from pydantic import BaseModel +from fastapi import FastAPI,Request +from fastapi.concurrency import asynccontextmanager +from embedding_provider import EmbeddingProvider + +@asynccontextmanager +async def lifespan(app:FastAPI): + app.state.embed_engine = EmbeddingProvider() + yield + app.state.embed_engine.destroy() + +app = FastAPI( + title="Embedding Inference Server", + lifespan=lifespan, + root_path="/v1", + version="1.0", + license_info={"name":"Apache License 2.0","identifier":"Apache"} + ) + +class EmbeddingRequest(BaseModel): + model: str + input: list[str] + +class Usage(BaseModel): + total_tokens: int + +class EmbeddingData(BaseModel): + embedding: list[Union[float, int]] + +class EmbeddingResponse(BaseModel): + model: str + data: list[EmbeddingData] + usage: Usage + +@app.post("/embeddings", response_model=EmbeddingResponse, summary="文本向量化") +def text_embedding(request: Request,embed_request:EmbeddingRequest) -> EmbeddingResponse: + texts = embed_request.input + + engine:EmbeddingProvider = request.app.state.embed_engine + results = engine.embedding(documents=texts) + embeddings = results[0] + total_tokens = results[1] + + usage = Usage(total_tokens=total_tokens) + + embedding_datas = [ + EmbeddingData( + embedding = emb, + index = count, + ) + for count, emb in enumerate(embeddings) + ] + + return EmbeddingResponse( + model=embed_request.model, + data=embedding_datas, + usage=usage + ) + +if __name__ == "__main__": + uvicorn.run(app, host="0.0.0.0", port=8097) \ No newline at end of file diff --git a/vllm-embedding-rerank-server/app/models.py b/vllm-embedding-rerank-server/app/models.py new file mode 100644 index 0000000..551273d --- /dev/null +++ b/vllm-embedding-rerank-server/app/models.py @@ -0,0 +1,19 @@ +from typing import Union +from pydantic import BaseModel + +class EmbeddingRequest(BaseModel): + model: str + input: Union[str, list[str]] + +class Usage(BaseModel): + total_tokens: int + +class EmbeddingData(BaseModel): + object: str = "embedding" + embedding: list[Union[float, int]] + +class EmbeddingResponse(BaseModel): + model: str + object: str = "list" + data: list[EmbeddingData] + usage: Usage \ No newline at end of file diff --git a/vllm-embedding-rerank-server/app/test.py b/vllm-embedding-rerank-server/app/test.py new file mode 100644 index 0000000..eeaae84 --- /dev/null +++ b/vllm-embedding-rerank-server/app/test.py @@ -0,0 +1,10 @@ +import heapq + +scores=[0.1,0.3,0.5] +documents=['a','b','c'] +all_pairs = [ + {'id': index+1, 'score': score, 'document': documents[index]} + for index, score in enumerate(scores) +] +all_pairs = heapq.nlargest(2, all_pairs, key=lambda x: x['score']) +print(all_pairs) \ No newline at end of file diff --git a/vllm-embedding-rerank-server/pyproject.toml b/vllm-embedding-rerank-server/pyproject.toml new file mode 100644 index 0000000..c6ae93e --- /dev/null +++ b/vllm-embedding-rerank-server/pyproject.toml @@ -0,0 +1,10 @@ +[project] +name = "vllm-embed-rerank-server" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "fastapi>=0.116.1", + "uvicorn>=0.35.0", +] diff --git a/vllm-embedding-rerank-server/uv.lock b/vllm-embedding-rerank-server/uv.lock new file mode 100644 index 0000000..01734f0 --- /dev/null +++ b/vllm-embedding-rerank-server/uv.lock @@ -0,0 +1,207 @@ +version = 1 +revision = 2 +requires-python = ">=3.12" + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53" }, +] + +[[package]] +name = "anyio" +version = "4.9.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/95/7d/4c1bd541d4dffa1b52bd83fb8527089e097a106fc90b467a7313b105f840/anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c" }, +] + +[[package]] +name = "click" +version = "8.2.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6" }, +] + +[[package]] +name = "fastapi" +version = "0.116.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/78/d7/6c8b3bfe33eeffa208183ec037fee0cce9f7f024089ab1c5d12ef04bd27c/fastapi-0.116.1.tar.gz", hash = "sha256:ed52cbf946abfd70c5a0dccb24673f0670deeb517a88b3544d03c2a6bf283143" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl", hash = "sha256:c46ac7c312df840f0c9e220f7964bada936781bc4e2e6eb71f1c4d7553786565" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" }, +] + +[[package]] +name = "pydantic" +version = "2.11.7" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5" }, + { url = "https://repo.huaweicloud.com/repository/pypi/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2" }, +] + +[[package]] +name = "starlette" +version = "0.47.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/0a/69/662169fdb92fb96ec3eaee218cf540a629d629c86d7993d9651226a6789b/starlette-0.47.1.tar.gz", hash = "sha256:aef012dd2b6be325ffa16698f9dc533614fb1cebd593a906b90dc1025529a79b" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/82/95/38ef0cd7fa11eaba6a99b3c4f5ac948d8bc6ff199aabd327a29cc000840c/starlette-0.47.1-py3-none-any.whl", hash = "sha256:5e11c9f5c7c3f24959edbf2dffdc01bba860228acf657129467d8a7468591527" }, +] + +[[package]] +name = "typing-extensions" +version = "4.14.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.1" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51" }, +] + +[[package]] +name = "uvicorn" +version = "0.35.0" +source = { registry = "https://repo.huaweicloud.com/repository/pypi/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://repo.huaweicloud.com/repository/pypi/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01" } +wheels = [ + { url = "https://repo.huaweicloud.com/repository/pypi/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a" }, +] + +[[package]] +name = "vllm-embed-rerank-server" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "fastapi" }, + { name = "uvicorn" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", specifier = ">=0.116.1" }, + { name = "uvicorn", specifier = ">=0.35.0" }, +]