php与python技术分享 php与python技术分享
  • PHP 相关
  • Python 相关
  • 综合内容
  • 工具箱
  • 登录
首页 › Python 相关 › Python 单文件实现根据关键词利用 openai 等接口批量写文章

Python 单文件实现根据关键词利用 openai 等接口批量写文章

新程序
2025-05-07 12:30:55
本文摘要 DeepSeek
该文本介绍了一个基于 Python 的多线程 AI 文章生成工具,主要功能包括:1. 通过关键词列表批量生成标题并撰写文章;2. 支持自定义 AI 接口/模型、并发控制及内容格式;3. 提供提示词优化机制提升原创性和可读性。核心代码展示了关键功能实现:初始化 OpenAI 配置、关键词读取、标题清洗、提示词加载 (支持多模板轮换) 及文件存储管理。系统采用模块化设计,包含完善的错误处理和日志记录,通过配置文件实现高度自定义。(149 字)

Python单文件实现根据关键词利用openai等接口批量写文章-php与python技术分享

Python 可以实现多线程同时根据关键词列表进行标题生成,然后根据标题写对应的文章,通过定义提示词优化生成内容的原创度、阅读体验改进。

可以自定义你喜欢的 ai 接口和模型,控制并发和线程、生成间隔、生成的文章内容格式、文字保存的文件名等功能。

核心示例代码:

import os
import openai
import concurrent.futures
import configparser
import time
import logging
import re
import random

# 设置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)


def clean_title(title):
    """统一清理标题中的非法字符和前缀"""
    title = re.sub(r'^[\s ]*(文章标题|标题)[::]?\s*', '', title)
    title = re.sub(r'[<>:"/\\|?*#\n\r\t]', '', title).strip()
    return title[:50]


def setup_openai(api_key, base_url):
    """配置 OpenAI 客户端"""
    openai.api_key = api_key
    openai.base_url = base_url


def read_keywords(keyword_file):
    """读取关键词列表"""
    if not os.path.exists(keyword_file):
        logger.error(f"关键词文件不存在: {keyword_file}")
        return []
    try:
        with open(keyword_file, 'r', encoding='utf-8') as f:
            return [line.strip() for line in f if line.strip()]
    except Exception as e:
        logger.error(f"读取关键词文件失败: {e}")
        return []


def create_wenzhang_folder():
    """创建文章文件夹"""
    base_path = os.path.join(os.getcwd(), "wenzhang")
    os.makedirs(base_path, exist_ok=True)
    return base_path


def load_prompts(prompt_file='neirong.ini'):
    """读取提示词配置文件"""
    config = configparser.ConfigParser(inline_comment_prefixes=('#', ';'))
    if not os.path.exists(prompt_file):
        logger.error(f"提示词配置文件不存在: {prompt_file}")
        return [], []

    try:
        with open(prompt_file, 'r', encoding='utf-8') as file:
            # 读取文件内容
            content = file.read()
            # 处理续行符
            content = content.replace('\\\n', '')
            # 从字符串读取配置
            config.read_string(content)
    except FileNotFoundError:
        logger.error(f"提示词配置文件未找到: {prompt_file}")
        return [], []
    except configparser.Error as e:
        logger.error(f"解析提示词配置文件时出错: {e}")
        return [], []
    except Exception as e:
        logger.error(f"读取提示词配置文件时发生未知错误: {e}")
        return [], []

    title_prompts = []
    article_prompts = []

    for section in config.sections():
        if section.startswith('TitlePrompt'):
            try:
                title_prompts.append(config.get(section, 'prompt'))
            except configparser.NoOptionError:
                logger.warning(f"在 {section} 节中未找到 'prompt' 选项")
        elif section.startswith('ArticlePrompt'):
            try:
                article_prompts.append(config.get(section, 'prompt'))
            except configparser.NoOptionError:
                logger.warning(f"在 {section} 节中未找到 'prompt' 选项")

    if not title_prompts or not article_prompts:
        logger.error("提示词配置文件中缺少有效的标题或文章提示词")
        return [], []

    return title_prompts, article_prompts

 

声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
1
小旋风蜘蛛池 pro 版本文章入库 python 代码
上一篇

猜你喜欢

  • 小旋风蜘蛛池 pro 版本文章入库 python 代码

新程序

11
文章
0
评论
21
获赞

全站搜索

专题展示

纯 php 无数据库实现在线购物网站、发卡平台功能
2025-05-09 9:40:41
纯 php 无需数据库实现蜘蛛池外租平台功能,含 usdt 在线充值回调
2025-05-08 8:09:30
php 实现网站备份功能,一件备份目标网站至本地
2025-05-08 8:01:58

最近发布

  • 纯 php 无数据库实现在线购物网站、发卡平台功能
  • 纯 php 无需数据库实现蜘蛛池外租平台功能,含 usdt 在线充值回调
  • php 实现网站备份功能,一件备份目标网站至本地
  • Python 单文件实现根据关键词利用 openai 等接口批量写文章
  • 纯 PHP 实现利用 openai 接口挖词功能
Copyright © 2025 php 与 python 技术分享.
现在登录
  • PHP 相关
  • Python 相关
  • 综合内容
  • 工具箱