Files
EmojiTextGenerator/main.py

52 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from pathlib import Path
import dashscope
from models.generator import Generator
from models.emoji_db import check_emoji, update_description
from controllers.localfile_handles import get_emoji_count, yield_emoji_path
from controllers.compress_image import compress_image
from controllers.calculate_cost import calc_cost
from models.logger import setup_logger
logger = setup_logger()
api_key = "sk-213f83213fce4e2ba41b8e67721f19cb"
dashscope.api_key = api_key
root_folder = "D:\\Python\\mcunc\\EmojiTextGenerator\\"
emoji_folder = "D:\\Python\\mcunc\\EmojiTextGenerator\\emojis\\"
emoji = yield_emoji_path(emoji_folder)
gen = Generator(api_key)
def main():
count_cost = 0
for i in range(get_emoji_count(emoji_folder)):
emoji_file = next(emoji)
emoji_uuid = ''
p = Path(emoji_file)
if p.suffix == ".jpg" or p.suffix == ".jpeg":
emoji_uuid = p.stem
image = compress_image(emoji_file)
image_path = Path(root_folder) / image
if check_emoji(emoji_uuid):
try:
description, tokens = gen.get_data(str(image_path))
cost = calc_cost(tokens)
input_tokens, output_tokens = tokens
except AttributeError:
logger.warning("AI模型未响应请检查是否欠费")
break
update_description(emoji_uuid, description)
if description:
logger.info(f"图片 {emoji_file} 的描述词生成完毕,序号:{i + 1}, 其 description 为: {description}")
logger.info(f"本次生成输入token{input_tokens}, 输出token{output_tokens}, 花费:{cost}")
else:
logger.warning(f"图片 {emoji_file} 的描述词生成失败!序号:{i + 1}")
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
exit()