fix: sentence_transformers import error workaround
This commit is contained in:
@@ -238,6 +238,59 @@ volumes:
|
|||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Dashboard 部署
|
||||||
|
|
||||||
|
mem0 dashboard 是 Next.js 应用,需要单独部署。
|
||||||
|
|
||||||
|
### 环境变量
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
NEXT_PUBLIC_API_URL=http://mem0.tei.svc.cluster.local:8000 # 浏览器调用(通过 Ingress)
|
||||||
|
API_INTERNAL_URL=http://mem0.tei.svc.cluster.local:8000 # 服务端内部调用(K8s 内部直连)
|
||||||
|
NEXT_PUBLIC_INSTANCE_NAME=Mem0
|
||||||
|
```
|
||||||
|
|
||||||
|
**`API_INTERNAL_URL`**:K8s 内部服务间通信,直接使用 Service DNS,不需要暴露到外部。浏览器无法解析 `mem0.tei.svc.cluster.local`,所以前端用 `NEXT_PUBLIC_API_URL` 通过 Ingress 访问。
|
||||||
|
|
||||||
|
两者可以相同,但分离部署时:
|
||||||
|
- `NEXT_PUBLIC_API_URL` = 对外域名(Ingress)
|
||||||
|
- `API_INTERNAL_URL` = 集群内部 `mem0.tei.svc.cluster.local:8000`
|
||||||
|
|
||||||
|
### CORS 配置
|
||||||
|
|
||||||
|
mem0 server 使用 CORSMiddleware,需要通过环境变量配置允许的来源:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
DASHBOARD_URL=https://mem0.your-domain.com # dashboard 的外部访问地址
|
||||||
|
```
|
||||||
|
|
||||||
|
mem0 server 启动时读取 `DASHBOARD_URL`,设置 `allow_origins=[DASHBOARD_URL]`。
|
||||||
|
|
||||||
|
**常见问题**:
|
||||||
|
- 浏览器访问 dashboard 登录页时,返回 `400 Bad Request`
|
||||||
|
- OPTIONS 预检请求失败,因为 `allow_origins` 为空
|
||||||
|
- Swagger 能正常登录(同域请求,无 CORS 问题)
|
||||||
|
|
||||||
|
确保 `DASHBOARD_URL` 设为 dashboard 的外部访问地址(与 `NEXT_PUBLIC_API_URL` 的域名部分一致)。
|
||||||
|
|
||||||
|
### sentence_transformers 导入错误
|
||||||
|
|
||||||
|
mem0 的 `huggingface.py` 在文件顶部执行 `from sentence_transformers import SentenceTransformer`,即使走 `huggingface_base_url` 路径(用 OpenAI 客户端调用 TEI,不需要本地模型)也会尝试加载,造成 `ModuleNotFoundError`。
|
||||||
|
|
||||||
|
**临时修复**(容器内,重启会丢):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sed -i 's/from sentence_transformers import SentenceTransformer/# from sentence_transformers import SentenceTransformer/' /usr/local/lib/python3.12/site-packages/mem0/embeddings/huggingface.py
|
||||||
|
```
|
||||||
|
|
||||||
|
验证:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 -c "from mem0.embeddings.huggingface import HuggingFaceEmbedding"
|
||||||
|
```
|
||||||
|
|
||||||
|
**永久修复**:在 Dockerfile 里加这步,或修改本地 mem0 源码后 COPY 进容器。
|
||||||
|
|
||||||
## 功能测试
|
## 功能测试
|
||||||
|
|
||||||
mem0 未为 K8s 做适配,无健康检查端点。手动测试核心 API:
|
mem0 未为 K8s 做适配,无健康检查端点。手动测试核心 API:
|
||||||
|
|||||||
Reference in New Issue
Block a user