π§ Enhanced AI Assistant with ChromaDB
Vector Memory + Reinforcement Learning + Streaming Chat
Gradio API Server - λͺ¨λ λ°±μλ κΈ°λ₯ νμ±ν
λνν AI μ±ν
βοΈ API μ 보
μ¬μ© κ°λ₯ν κΈ°λ₯:
- β μ€μκ° μ€νΈλ¦¬λ° μλ΅
- β λ²‘ν° κΈ°λ° λ©λͺ¨λ¦¬ κ²μ
- β κ°ννμ΅ κΈ°λ° μκ° νμ΅
- β μΉ κ²μ ν΅ν©
- β κ°μ μΈμ
- β μλ λΆμ
API νΈμΆ λ°©λ²:
import requests
response = requests.post(
"http://localhost:7860/chat/text/stream",
json={
"message": "μλ
νμΈμ",
"web_search_enabled": True,
"session_id": "your-session-id"
}
)
λ²‘ν° λ©λͺ¨λ¦¬ κ΄λ¦¬
π λͺ¨λ λ©λͺ¨λ¦¬ μ‘°ν
π λ©λͺ¨λ¦¬ κ²μ
μμ€ν ν΅κ³
π REST API μλν¬μΈνΈ
Chat Endpoints
POST /chat/text/stream
μ€νΈλ¦¬λ° ν μ€νΈ μ±ν
Request Body:
{
"message": "μλ
νμΈμ",
"web_search_enabled": true,
"session_id": "uuid-here",
"user_name": "μ¬μ©μλͺ
",
"self_learning_enabled": true,
"uploaded_files": []
}
Response: Server-Sent Events (SSE) μ€νΈλ¦Ό
Memory Endpoints
POST /memory/search
μλ§¨ν± λ©λͺ¨λ¦¬ κ²μ
GET /memory/all
λͺ¨λ λ©λͺ¨λ¦¬ μ‘°ν
DELETE /memory/{memory_id}
νΉμ λ©λͺ¨λ¦¬ μμ
POST /memory/feedback
λ©λͺ¨λ¦¬ νΌλλ°± μ 곡 (κ°ννμ΅)
Session Endpoints
POST /session/new
μ μΈμ μμ±
POST /session/end
μΈμ μ’ λ£ λ° λ©λͺ¨λ¦¬ μΆμΆ
File Endpoints
POST /upload/file
νμΌ μ λ‘λ (PDF, CSV, TXT)
DELETE /upload/file/{file_id}
μ λ‘λλ νμΌ μμ
π Python ν΄λΌμ΄μΈνΈ μμ
import requests
import json
# μ±ν
μ€νΈλ¦¬λ°
response = requests.post(
"http://localhost:7860/chat/text/stream",
json={
"message": "μλ
νμΈμ",
"web_search_enabled": True,
"session_id": "test-session"
},
stream=True
)
for line in response.iter_lines():
if line:
data = line.decode('utf-8')
if data.startswith('data: '):
content = json.loads(data[6:])
print(content.get('content', ''), end='')