voicebot / services /image_service.py
datbkpro's picture
voicebot offical
dbf2148
raw
history blame
1.48 kB
from groq import Groq
from config.settings import settings
class ImageService:
def __init__(self, groq_client: Groq):
self.client = groq_client
def analyze_image_with_description(self, image, user_description: str) -> str:
"""Phân tích hình ảnh kết hợp với mô tả từ người dùng"""
if image is None:
return "No image uploaded."
try:
if user_description:
prompt = f"""Người dùng tải lên một hình ảnh và mô tả: "{user_description}"
Dựa trên mô tả này, hãy phân tích chi tiết bằng tiếng Việt:
1. Mô tả chi tiết những gì có trong hình ảnh
2. Phân tích các yếu tố liên quan đến mô tả của người dùng
3. Đưa ra nhận xét và thông tin hữu ích"""
else:
prompt = """Hãy mô tả chi tiết bằng tiếng Việt những gì bạn nghĩ có thể có trong hình ảnh này.
Mô tả các đối tượng, màu sắc, bố cục và ngữ cảnh có thể có của hình ảnh."""
chat_completion = self.client.chat.completions.create(
messages=[{"role": "user", "content": prompt}],
model=settings.LLM_MODEL,
)
description = chat_completion.choices[0].message.content
except Exception as e:
description = f"Error in image analysis: {str(e)}"
return description