AI Integration

ai module
Yêu cầu: 1 bắt buộc + 1 khuyến khích  ·  LLM: OpenRouter / Groq  ·  Vector: Pinecone (đã setup)
4
Tính năng AI
moderation caption reply recommend
1+1
Yêu cầu
1 bắt buộc + 1 khuyến khích
Stub
Service
4 methods → return {}
GPT
LLM đề xuất
gpt-4o-mini (rẻ, nhanh)

① AI Content Moderation bắt buộc


Bài viết / Comment mới được tạo BullMQ: ai-moderation-queue async — không block response user Worker: gọi OpenAI Moderation API POST openai.com/v1/moderations → categories + scores Confidence? < 0.5 (safe) ✅ Bài an toàn → pass 0.5–0.9 (suspicious) ⚠ Đưa vào admin review queue INSERT Report(type=AI_FLAGGED, confidence) > 0.9 (toxic) 🚫 Auto-hide bài viết isGhost=true + notify admin

Bài/comment mới → queue → AI worker kiểm tra → safe (pass) / suspicious (admin review) / toxic (auto-hide). Không block user.

#TaskChi tiết triển khaiStatus
01
BullMQ: moderation queue
Tạo queue ai-moderation. Producer: gọi trong PostService.post()PostService.reply() sau khi tạo bài.todo
02
Worker: OpenAI Moderation
Gọi POST /v1/moderations (free API). Parse response: categories (hate, violence, sexual...) + category_scores.todo
03
Decision logic
Score <0.5 → pass. 0.5–0.9 → flag cho admin. >0.9 → auto-hide + INSERT Report(type=AI_FLAGGED). Thresholds cấu hình qua env.todo
04
Fallback nếu API fail
OpenAI timeout/error → retry 3 lần → nếu vẫn fail → pass (không block user) + log warning cho admin review sau.todo

② AI Caption Generator khuyến khích


User upload ảnh POST /ai/caption body: { imageUrl } GPT-4o Vision phân tích ảnh Prompt: "Gợi ý 3 caption + 5 hashtag phù hợp" Structured output: JSON { captions[], hashtags[] } Response: 3 captions + hashtags User chọn 1 → paste vào nội dung bài

User upload ảnh → gọi GPT-4o Vision → AI phân tích ảnh → gợi ý 3 caption + hashtag → user chọn và dùng.

③④ Smart Reply & Recommendation


AI Smart Reply

KHUYẾN KHÍCH

Khi nhận tin nhắn chat, gợi ý 3 câu trả lời nhanh dựa trên context cuộc hội thoại. User nhấn 1 cái để reply ngay.

API: POST /ai/smart-reply
Input: 10 tin nhắn gần nhất
LLM: GPT-4o-mini (nhanh, rẻ)
Output: 3 suggested replies
Latency target: <2s

AI Recommendation

KHUYẾN KHÍCH

Gợi ý kết bạn và bài viết dựa trên sở thích & tương tác. Collaborative filtering + content-based.

API: GET /ai/recommend?type=user|post
Vector: Pinecone (user + post embeddings)
Signal: likes, follows, topics, interactions
Batch: Cron job mỗi 6h tính embedding
Cache: Redis sorted set, TTL 1h

Tech & Cost


FeatureAPI / ModelGiá ước tínhLưu ý
Content ModerationOpenAI Moderation APIFREEFree tier, không limit. Chỉ check text. Ảnh cần Moderation + Vision.
Caption GeneratorGPT-4o-mini + Vision~$0.01/requestInput image + text prompt. Structured JSON output. Rate limit 500 RPM.
Smart ReplyGPT-4o-mini~$0.001/requestShort context (10 messages). Fast response. Can use streaming.
RecommendationPinecone + EmbeddingFree tier OKPinecone free: 100K vectors. text-embedding-3-small: $0.02/1M tokens.

Potential Issues


Latency
OpenAI API: 1–3s. Moderation chạy async (queue) nên OK. Caption/SmartReply chạy sync → cần loading UI. Hoặc dùng streaming (SSE) cho UX tốt hơn.
Cost
GPT-4o-mini rẻ (~$0.15/1M input tokens). Nhưng nếu mọi bài đều gọi caption → tốn. Chỉ gọi khi user bấm "Gợi ý AI", không auto-generate.
Rate limit
OpenAI rate limit per org. Cần: server-side rate limit per user (5 caption requests/giờ), retry with exponential backoff, graceful degradation.
Prompt inject
User có thể chèn prompt injection trong nội dung bài. Moderation API resistant, nhưng caption/reply cần sanitize input + system prompt guard.
Fallback
Nếu OpenAI down → feature AI degrade gracefully. Moderation: pass all. Caption: "Không thể gợi ý lúc này". Không crash toàn app.