From aad7cb9829f06234c82f2130a999684c502eced1 Mon Sep 17 00:00:00 2001 From: root <953994191@qq.com> Date: Wed, 29 Apr 2026 22:08:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B5=8C=E5=85=A5=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=EF=BC=8C=E4=BD=BF=E7=94=A8=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=20ZhipuAI=20=E5=B5=8C=E5=85=A5=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/model_services/embedding_services.py | 21 +++++++++++++++++-- backend/requirements.txt | 5 ++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/backend/app/model_services/embedding_services.py b/backend/app/model_services/embedding_services.py index d830015..532c2b2 100644 --- a/backend/app/model_services/embedding_services.py +++ b/backend/app/model_services/embedding_services.py @@ -120,14 +120,31 @@ class ZhipuEmbeddingProvider(BaseServiceProvider[Embeddings]): Embeddings: LangChain 兼容的嵌入实例 """ if self._service_instance is None: - from langchain_zhipu import ZhipuAIEmbeddings - self._service_instance = ZhipuAIEmbeddings( + self._service_instance = _SimpleZhipuAIEmbeddings( model=self._model, api_key=ZHIPUAI_API_KEY ) return self._service_instance +class _SimpleZhipuAIEmbeddings(Embeddings): + """ + 简单的智谱 AI 嵌入实现,直接用 zhipuai 库 + """ + def __init__(self, model: str, api_key: str): + from zhipuai import ZhipuAI + self.model = model + self.client = ZhipuAI(api_key=api_key) + + def embed_documents(self, texts: list[str]) -> list[list[float]]: + response = self.client.embeddings.create(model=self.model, input=texts) + return [item.embedding for item in response.data] + + def embed_query(self, text: str) -> list[float]: + response = self.client.embeddings.create(model=self.model, input=[text]) + return response.data[0].embedding + + class LocalLlamaCppEmbedder: """ 通过 OpenAI 兼容 API 封装 llama.cpp 嵌入服务 diff --git a/backend/requirements.txt b/backend/requirements.txt index 55435f8..e26cef0 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -13,6 +13,9 @@ langgraph==1.1.6 langgraph-checkpoint-postgres==3.0.5 tiktoken>=0.12.0 +# Zhipu AI +zhipuai==2.0.1 + # Vector DB qdrant-client==1.17.1 @@ -36,7 +39,7 @@ tenacity==9.1.4 rich==15.0.0 PyYAML==6.0.3 numpy>=1.26.2 -pyjwt==2.10.1 +pyjwt==2.8.0 # Document Processing unstructured==0.22.21