Commit a9df6eb7 authored by Vũ Hoàng Anh's avatar Vũ Hoàng Anh

refactor: centralize API keys, fix sqlite_db.py path, update docstrings

- config.py += FREE_LLM_API_KEY, LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY
- sqlite_db.py: use SQLITE_DB_PATH from constants
- n8n_desc.py: import FREE_LLM_API_KEY from config
- faq_route.py: import FREE_LLM_API_KEY from config
- live_monitor_route.py: import Langfuse keys from config
- prompt_optimizer_route.py: update docstrings (remove hardcoded IPs)
- NEW: tests/conftest.py with centralized BASE_URL
parent 8b5809bb
......@@ -15,10 +15,10 @@ logger = logging.getLogger(__name__)
router = APIRouter()
# ── AI Config ──
from config import LITELLM_BASE_URL
from config import FREE_LLM_API_KEY, LITELLM_BASE_URL
AI_BASE_URL = f"{LITELLM_BASE_URL}/v1/chat/completions"
AI_API_KEY = "freellmapi-a858c30561987b8aa2a58343c7fe48a6a52e65cadb9df6d5"
AI_API_KEY = FREE_LLM_API_KEY
# ── DB Setup ──
def _ensure_faqs_table():
......
......@@ -20,13 +20,10 @@ logger = logging.getLogger(__name__)
router = APIRouter()
# ─── Self-hosted Langfuse config ─────────────────────────────────
from config import LANGFUSE_SELF_HOSTED_URL
from config import LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, LANGFUSE_SELF_HOSTED_URL
LANGFUSE_BASE = LANGFUSE_SELF_HOSTED_URL
LANGFUSE_AUTH = (
"pk-lf-2bb249b1-77e3-4309-8954-312b8fb2fff9",
"sk-lf-bd0c7202-a7f4-4399-a36e-65ebe2e35104",
)
LANGFUSE_AUTH = (LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY)
def _utc_now() -> datetime:
......
......@@ -27,10 +27,9 @@ logger = logging.getLogger(__name__)
router = APIRouter(prefix="/api/product-desc", tags=["n8n Ultra Description"])
from config import LITELLM_BASE_URL
from config import FREE_LLM_API_KEY, LITELLM_BASE_URL
# ── FreeLLMAPI config ──
FREE_LLM_API_KEY = "freellmapi-a858c30561987b8aa2a58343c7fe48a6a52e65cadb9df6d5"
VISION_MODEL = "meta-llama/llama-4-scout-17b-16e-instruct"
WRITER_MODEL = "openai/gpt-oss-20b"
......
......@@ -3,7 +3,7 @@ Prompt Optimizer Route
API endpoints cho Prompt Optimizer: test chatbot, judge responses, optimize prompts.
Flow:
1. run-test: Gọi chatbot API remote (172.16.2.207:5000) → lấy câu trả lời
1. run-test: Gọi chatbot API remote (CHATBOT_API_BASE from config.py) → lấy câu trả lời
2. judge: Codex (gpt-5.3-codex) đánh giá câu trả lời + verify bằng data thật
3. optimize: Gemini phân tích lỗi → sinh prompt mới
"""
......@@ -53,7 +53,7 @@ class OptimizeRequest(BaseModel):
@router.post("/run-test", summary="Run a test case through the remote chatbot")
async def run_test(req: RunTestRequest):
"""
Call chatbot API tại 172.16.2.207:5000/api/agent/chat-dev
Call chatbot API tại CHATBOT_API_BASE/api/agent/chat-dev
Lấy câu trả lời thật từ bot (dùng prompt Langfuse hiện tại).
"""
try:
......
......@@ -18,9 +18,8 @@ class SQLiteDBManager:
def __new__(cls):
if cls._instance is None:
cls._instance = super(SQLiteDBManager, cls).__new__(cls)
# Default path trỏ thẳng vào: backend/database/canifa_ai_dump.sqlite
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
cls._instance._db_path = os.path.join(base_dir, "database", "canifa_ai_dump.sqlite")
from common.constants import SQLITE_DB_PATH
cls._instance._db_path = SQLITE_DB_PATH
return cls._instance
@property
......
......@@ -170,3 +170,8 @@ LANGFUSE_SELF_HOSTED_URL: str = os.getenv("LANGFUSE_SELF_HOSTED_URL", "http://17
N8N_BASE_URL: str = os.getenv("N8N_BASE_URL", "http://172.16.2.207:5678")
LITELLM_BASE_URL: str = os.getenv("LITELLM_BASE_URL", "http://172.16.2.210:3002")
STARROCKS_INGEST_HOST: str = os.getenv("STARROCKS_INGEST_HOST", "172.16.2.100")
# ====================== INTERNAL API KEYS ======================
FREE_LLM_API_KEY: str = os.getenv("FREE_LLM_API_KEY", "freellmapi-a858c30561987b8aa2a58343c7fe48a6a52e65cadb9df6d5")
LANGFUSE_PUBLIC_KEY: str = os.getenv("LANGFUSE_PUBLIC_KEY", "pk-lf-2bb249b1-77e3-4309-8954-312b8fb2fff9")
LANGFUSE_SECRET_KEY: str = os.getenv("LANGFUSE_SECRET_KEY", "sk-lf-bd0c7202-a7f4-4399-a36e-65ebe2e35104")
"""
conftest.py — Shared test configuration.
Tất cả test files nên import BASE_URL từ đây thay vì hardcode.
"""
import os
BASE_URL = os.getenv("TEST_BASE_URL", "http://localhost:5000")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment