feat: stabilize rag chat conversations and auto title sync
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi_admin.config._settings import llm
|
||||
from fastapi_admin.config._settings import embedding, llm
|
||||
|
||||
|
||||
def _get_str(name: str, default: str = "") -> str:
|
||||
@@ -36,11 +36,23 @@ RAG_CONFIG = {
|
||||
"CHROMA_PORT": _get_int("RAG_CHROMA_PORT", 8010),
|
||||
"CHROMA_TOKEN": _get_str("RAG_CHROMA_TOKEN", ""),
|
||||
"CHROMA_AUTH_HEADER": _get_str("RAG_CHROMA_AUTH_HEADER", "X-Chroma-Token"),
|
||||
"EMBED_URL": _get_str("RAG_EMBED_URL", _get_str("GRAPH_RAG_EMBED_URL", "")),
|
||||
"EMBED_KEY": _get_str("RAG_EMBED_KEY", _get_str("GRAPH_RAG_EMBED_KEY", "")),
|
||||
"EMBED_MODEL": _get_str("RAG_EMBED_MODEL", _get_str("GRAPH_RAG_EMBED_MODEL", "")),
|
||||
"EMBED_DIM": _get_int("RAG_EMBED_DIM", 1024),
|
||||
"EMBED_BATCH_SIZE": _get_int("RAG_EMBED_BATCH_SIZE", 10),
|
||||
"EMBED_URL": _get_str(
|
||||
"RAG_EMBED_URL",
|
||||
_get_str("GRAPH_RAG_EMBED_URL", _get_str("EMBEDDING_BASE_URL", embedding.EMBEDDING_BASE_URL)),
|
||||
),
|
||||
"EMBED_KEY": _get_str(
|
||||
"RAG_EMBED_KEY",
|
||||
_get_str("GRAPH_RAG_EMBED_KEY", _get_str("EMBEDDING_API_KEY", embedding.EMBEDDING_API_KEY)),
|
||||
),
|
||||
"EMBED_MODEL": _get_str(
|
||||
"RAG_EMBED_MODEL",
|
||||
_get_str("GRAPH_RAG_EMBED_MODEL", _get_str("EMBEDDING_MODEL", embedding.EMBEDDING_MODEL)),
|
||||
),
|
||||
"EMBED_DIM": _get_int("RAG_EMBED_DIM", _get_int("EMBEDDING_DIM", embedding.EMBEDDING_DIM)),
|
||||
"EMBED_BATCH_SIZE": _get_int(
|
||||
"RAG_EMBED_BATCH_SIZE",
|
||||
_get_int("EMBEDDING_BATCH_SIZE", embedding.EMBEDDING_BATCH_SIZE),
|
||||
),
|
||||
"RERANKER_URL": _get_str("RAG_RERANKER_URL", _get_str("GRAPH_RAG_RERANKER_URL", "")),
|
||||
"RERANKER_KEY": _get_str("RAG_RERANKER_KEY", _get_str("GRAPH_RAG_RERANKER_KEY", "")),
|
||||
"RERANKER_MODEL": _get_str("RAG_RERANKER_MODEL", _get_str("GRAPH_RAG_RERANKER_MODEL", "")),
|
||||
@@ -58,3 +70,34 @@ RAG_CONFIG = {
|
||||
"HYBRID_SEARCH": _get_bool("RAG_HYBRID_SEARCH", True),
|
||||
"RERANKING": _get_bool("RAG_RERANKING", True),
|
||||
}
|
||||
|
||||
|
||||
def build_openai_chat_completions_url(base_url: str) -> str:
|
||||
normalized = (base_url or "").strip().rstrip("/")
|
||||
if not normalized:
|
||||
return "/chat/completions"
|
||||
if normalized.endswith("/chat/completions"):
|
||||
return normalized
|
||||
return f"{normalized}/chat/completions"
|
||||
|
||||
|
||||
def build_openai_embeddings_url(base_url: str) -> str:
|
||||
normalized = (base_url or "").strip().rstrip("/")
|
||||
if not normalized:
|
||||
return "/embeddings"
|
||||
if normalized.endswith("/chat/completions"):
|
||||
normalized = normalized[:-len("/chat/completions")]
|
||||
if normalized.endswith("/embeddings"):
|
||||
return normalized
|
||||
return f"{normalized}/embeddings"
|
||||
|
||||
|
||||
def normalize_openai_base_url(base_url: str) -> str:
|
||||
normalized = (base_url or "").strip().rstrip("/")
|
||||
if not normalized:
|
||||
return ""
|
||||
if normalized.endswith("/chat/completions"):
|
||||
return normalized[:-len("/chat/completions")]
|
||||
if normalized.endswith("/embeddings"):
|
||||
return normalized[:-len("/embeddings")]
|
||||
return normalized
|
||||
|
||||
Reference in New Issue
Block a user