[AC-AISVC-50] 合入第一个稳定版本 #2
|
|
@ -15,3 +15,7 @@ AI_SERVICE_LLM_MODEL=gpt-4o-mini
|
|||
# Ollama Configuration (for embedding model)
|
||||
AI_SERVICE_OLLAMA_BASE_URL=http://ollama:11434
|
||||
AI_SERVICE_OLLAMA_EMBEDDING_MODEL=nomic-embed-text
|
||||
|
||||
# Frontend API Key (required for admin panel authentication)
|
||||
# Get this key from the backend logs after first startup, or from /admin/api-keys
|
||||
VITE_APP_API_KEY=your-frontend-api-key-here
|
||||
|
|
|
|||
|
|
@ -3,6 +3,12 @@ FROM docker.1ms.run/node:20-alpine AS builder
|
|||
|
||||
WORKDIR /app
|
||||
|
||||
ARG VITE_APP_API_KEY
|
||||
ARG VITE_APP_BASE_API=/api
|
||||
|
||||
ENV VITE_APP_API_KEY=$VITE_APP_API_KEY
|
||||
ENV VITE_APP_BASE_API=$VITE_APP_BASE_API
|
||||
|
||||
COPY package*.json ./
|
||||
|
||||
RUN npm install && npm install @rollup/rollup-linux-x64-musl --save-optional
|
||||
|
|
|
|||
|
|
@ -396,42 +396,32 @@ class OptimizedRetriever(BaseRetriever):
|
|||
) -> list[dict[str, Any]]:
|
||||
"""Search using specified vector dimension."""
|
||||
try:
|
||||
qdrant = await client.get_client()
|
||||
collection_name = client.get_collection_name(tenant_id)
|
||||
|
||||
logger.info(
|
||||
f"[RAG-OPT] Searching collection={collection_name}, "
|
||||
f"vector_name={vector_name}, limit={limit}, vector_dim={len(query_vector)}"
|
||||
f"[RAG-OPT] Searching with vector_name={vector_name}, "
|
||||
f"limit={limit}, vector_dim={len(query_vector)}"
|
||||
)
|
||||
|
||||
results = await qdrant.search(
|
||||
collection_name=collection_name,
|
||||
query_vector=(vector_name, query_vector),
|
||||
results = await client.search(
|
||||
tenant_id=tenant_id,
|
||||
query_vector=query_vector,
|
||||
limit=limit,
|
||||
vector_name=vector_name,
|
||||
)
|
||||
|
||||
logger.info(
|
||||
f"[RAG-OPT] Search returned {len(results)} results from collection={collection_name}"
|
||||
f"[RAG-OPT] Search returned {len(results)} results"
|
||||
)
|
||||
|
||||
if len(results) > 0:
|
||||
for i, r in enumerate(results[:3]):
|
||||
logger.debug(
|
||||
f"[RAG-OPT] Result {i+1}: id={r.id}, score={r.score:.4f}"
|
||||
f"[RAG-OPT] Result {i+1}: id={r['id']}, score={r['score']:.4f}"
|
||||
)
|
||||
|
||||
return [
|
||||
{
|
||||
"id": str(result.id),
|
||||
"score": result.score,
|
||||
"payload": result.payload or {},
|
||||
}
|
||||
for result in results
|
||||
]
|
||||
return results
|
||||
except Exception as e:
|
||||
logger.error(
|
||||
f"[RAG-OPT] Search with {vector_name} failed: {e}, "
|
||||
f"collection_name={client.get_collection_name(tenant_id)}",
|
||||
f"[RAG-OPT] Search with {vector_name} failed: {e}",
|
||||
exc_info=True
|
||||
)
|
||||
return []
|
||||
|
|
|
|||
|
|
@ -35,6 +35,9 @@ services:
|
|||
build:
|
||||
context: ./ai-service-admin
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
VITE_APP_API_KEY: ${VITE_APP_API_KEY:-}
|
||||
VITE_APP_BASE_API: /api
|
||||
container_name: ai-service-admin
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
|
|
|||
Loading…
Reference in New Issue