用python实现基于火山引擎API接口批量生产AIGC内容

查看 48|回复 9
作者:矢岛舞美   
事情的起因就是我是个网站发文章的,这不这年头都兴AIGC嘛,之前都是模拟点击,还得提取数据,整理数据,效率太低,于是便有了这玩意,那生产效率,嘎嘎的。
主要通过官方api文档使用说明再结合网上的一些碎片化代码实现。
使用方法简单暴力,在excel表格第一列输入你的关键词,保存,运行此代码选择该文档即可生成word文档。
如果要保存到txt,excel这些理论上也可自己更改代码实现。
还可以对代码进行一些优化,比如对已生辰内容的关键词增加标记,后续不再重复读取等。
需要用到的火山引起依赖库:https://www.123865.com/s/TKR5Vv-vGu5v
[Python] 纯文本查看 复制代码import os
import pandas as pd
from tkinter import Tk, filedialog
from docx import Document
from concurrent.futures import ThreadPoolExecutor, as_completed
from volcenginesdkarkruntime import Ark
def test_chat(client, model, keyword):
    try:
        completion = client.chat.completions.create(
            model=model,
            messages=[
                {"role": "system", "content": "你是豆包,是由字节跳动开发的 AI 人工智能助手"},
                {"role": "user", "content": keyword},
            ],
        )
        content = completion.choices[0].message.content
        return content
    except Exception as e:
        print(f"Error during chat: {e}")
        return None
def generate_docx(title, content, output_dir):
    doc = Document()
    doc.add_heading(f"{title}", level=1)
    doc.add_paragraph("")
    doc.add_heading("", level=2)
    doc.add_paragraph(content)
    doc.save(os.path.join(output_dir, f"{title}.docx"))
def process_keyword(client, model, keyword, output_dir):
    content = test_chat(client, model, keyword)
    if content:
        # 将 content 中的 * 替换为空
        content = content.replace('*', '')
        generate_docx(keyword, content, output_dir)
def main():
    # 使用Tkinter选择Excel文件和输出文件夹
    root = Tk()
    root.withdraw()  # 隐藏主窗口
    excel_file = filedialog.askopenfilename(title="选择Excel文件", filetypes=[("Excel files", "*.xlsx *.xls")])
    output_dir = filedialog.askdirectory(title="选择输出文件夹")
    if not excel_file or not output_dir:
        print("未选择文件或文件夹")
        return
    # 读取Excel文件
    df = pd.read_excel(excel_file, sheet_name='Sheet1')
    # 设置 API Key 作为环境变量
    os.environ["ARK_API_KEY"] = "此处填入你的key"
    # 初始化 Ark 客户端
    client = Ark(
        base_url="https://ark.cn-beijing.volces.com/api/v3",
    )
    model = "此处填入需要调用的model名称"
    # 使用 ThreadPoolExecutor 进行多线程处理
    with ThreadPoolExecutor(max_workers=5) as executor:
        futures = [executor.submit(process_keyword, client, model, row[0], output_dir) for index, row in df.iterrows()]
        for future in as_completed(futures):
            try:
                future.result()
            except Exception as e:
                print(f"Error processing keyword: {e}")
if __name__ == '__main__':
    main()

代码, 文件

kanggege0914   

阿里嘎多!!!
SEELE0921   

太感谢了,真的有用!!!!!
y197   

好东西,已保存
aahong   

好东西,先收藏,感谢分享!!
dylanmao   

秀啊,get到了呀
Mocun   

好东西哦,先收藏了
Wobbly0253   

厉害啊先收藏了
linglingsan   

好东西有大用了,谢谢啊
xiaoheizi520   

这个是干什么的,没看懂有没有人解答一下
您需要登录后才可以回帖 登录 | 立即注册

返回顶部