| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import io
- import base64
- from PIL import Image
- from volcenginesdkarkruntime import Ark
- client = Ark(
- api_key= "817dff39-5586-4f9b-acba-55004167c0b1",
- base_url="https://ark.cn-beijing.volces.com/api/v3",
- )
- default_prompt = """
- ## 角色:小红书博主,文案能力优秀
- ## 任务:基于图像内容,生成小红书高赞文案,文案风格为小红书风格,需要有标题,具体文案内容和话题标签(话题标签至少5个)。
- ## 要求:
- - 字数控制在400字以内,多使用合适的emoji表情
- - 除了输出标题、具体文案内容和话题标签,不要输出任何额外的内容
- ## 输出格式:
- - 标题:<标题文本>
- - 文案:<文案文本>
- - 话题标签:<话题标签文本>
- """
-
- def encode_image(pil_image):
- """将PIL Image对象转换为base64编码"""
- buffered = io.BytesIO()
- pil_image.save(buffered, format="JPEG")
- return base64.b64encode(buffered.getvalue()).decode('utf-8')
- def gen_copywriter(image_path, sys_prompt=default_prompt):
- base64_image = encode_image(image_path)
- response = client.chat.completions.create(
- model="doubao-1-5-vision-pro-32k-250115",
- temperature=1,
- max_tokens=200,
- messages=[
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": sys_prompt,
- },
- {
- "type": "image_url",
- "image_url": {
- "url": f"data:image/jpg;base64,{base64_image}"
- },
- },
- ],
- }
- ],
- )
- return response.choices[0].message.content
- if __name__ == "__main__":
- with Image.open("./backend/data/cloth.png") as img:
- print(gen_copywriter(img))
|