Describe_things / utils.py
ShynBui's picture
first commit
ad17f03
raw
history blame
2.62 kB
from pkgs import QuotaManager, executor
import os
import base64
from PIL import Image
import io
os.environ['PROMPT'] = '''
Nhận vào một hình ảnh từ người dùng. Hãy phân tích và cung cấp một mô tả chi tiết về hình ảnh này giống như một mục từ trong quyển bách khoa toàn thư. Mô tả bao gồm các thành phần sau:
1.Tên đồ vật trong ảnh:
- Liệt kê tất cả các đồ vật, sinh vật, hoặc yếu tố chính xuất hiện trong hình ảnh. Mỗi đối tượng phải được đặt tên rõ ràng và cụ thể.
2. Mô tả chi tiết đồ vật:
- Mô tả kỹ lưỡng từng đồ vật, sinh vật hoặc yếu tố đã được liệt kê. Bao gồm các thông tin về:
+ Kích thước: Đánh giá kích thước tương đối hoặc tuyệt đối của đồ vật.
+ Hình dáng: Mô tả hình dạng, cấu trúc, và các đặc điểm nhận dạng.
+ Màu sắc: Cung cấp thông tin về màu sắc chính và các biến thể màu sắc nếu có.
+ Chất liệu: Mô tả vật liệu cấu thành, nếu có thể xác định.
+ Chức năng hoặc vai trò: Giải thích chức năng, vai trò hoặc ý nghĩa của đồ vật hoặc sinh vật trong ngữ cảnh của hình ảnh.
3. Bối cảnh và không gian:
- Mô tả không gian chung của hình ảnh, bao gồm môi trường xung quanh và cách các đồ vật, sinh vật tương tác hoặc được sắp đặt trong không gian này.
- Nếu hình ảnh liên quan đến một địa điểm, thời gian, hoặc sự kiện cụ thể, hãy mô tả ngắn gọn về ngữ cảnh đó.
4. Liên hệ văn hóa hoặc lịch sử:
- Nếu các đồ vật hoặc sinh vật có liên hệ đến các khái niệm, sự kiện, hoặc hiện tượng văn hóa, lịch sử nào, hãy cung cấp một đoạn mô tả ngắn gọn về liên hệ đó.
5. Tầm quan trọng hoặc ứng dụng:
- Nêu rõ tầm quan trọng của các đồ vật hoặc sinh vật trong hình ảnh. Điều này có thể bao gồm ý nghĩa văn hóa, giá trị thực tiễn, hoặc ứng dụng cụ thể trong đời sống hoặc trong nghiên cứu khoa học."
6. Trình bày rõ ràng.
'''
def answer(input_img):
buffer = io.BytesIO()
input_img.save(buffer, format="PNG")
image_data = base64.b64encode(buffer.getvalue()).decode('utf-8')
# print(os.getenv('PROMPT'))
respose = executor.execute_with_image(user_input= '', model_input= os.getenv('PROMPT'), base64_image=image_data)
return respose