feat: 用 Ragflow 搭建鲜境方案客服
咨询台接 Ragflow 检索与示例知识库,支持追问、判定、引用和留资。 Co-authored-by: haijd <haijd@163.com>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import sqlite3
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
from .settings import ROOT
|
||||
|
||||
DB_PATH = ROOT / "data" / "leads.sqlite"
|
||||
|
||||
|
||||
def _conn() -> sqlite3.Connection:
|
||||
DB_PATH.parent.mkdir(parents=True, exist_ok=True)
|
||||
conn = sqlite3.connect(DB_PATH)
|
||||
conn.row_factory = sqlite3.Row
|
||||
conn.execute(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS leads (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
session_id TEXT,
|
||||
name TEXT,
|
||||
phone TEXT,
|
||||
note TEXT,
|
||||
slots_json TEXT,
|
||||
scheme_json TEXT,
|
||||
created_at TEXT
|
||||
)
|
||||
"""
|
||||
)
|
||||
return conn
|
||||
|
||||
|
||||
def add_lead(
|
||||
*,
|
||||
session_id: str,
|
||||
name: str,
|
||||
phone: str,
|
||||
note: str,
|
||||
slots_json: str,
|
||||
scheme_json: str,
|
||||
) -> int:
|
||||
now = datetime.now(timezone.utc).isoformat()
|
||||
with _conn() as conn:
|
||||
cur = conn.execute(
|
||||
"""
|
||||
INSERT INTO leads (session_id, name, phone, note, slots_json, scheme_json, created_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(session_id, name, phone, note, slots_json, scheme_json, now),
|
||||
)
|
||||
return int(cur.lastrowid)
|
||||
|
||||
|
||||
def list_leads(limit: int = 50) -> list[dict]:
|
||||
with _conn() as conn:
|
||||
rows = conn.execute(
|
||||
"SELECT id, session_id, name, phone, note, created_at FROM leads ORDER BY id DESC LIMIT ?",
|
||||
(limit,),
|
||||
).fetchall()
|
||||
return [dict(row) for row in rows]
|
||||
Reference in New Issue
Block a user