基于大语言模型构建拟人化多角色对话引擎:从提示词工程到实战部署
最近在开发一个多角色交互的智能对话系统时遇到了一个核心挑战如何让AI角色在对话中保持鲜明、一致且富有深度的“人设”而不仅仅是机械地应答。这让我想起了“八仙过海各显神通”的典故——每个角色都应有其独特的背景、性格与能力。本文将围绕如何利用大语言模型LLM技术模拟“八仙真人来到人间”这一场景构建一套高度拟人化、可定制的多角色对话引擎。无论你是想开发沉浸式游戏NPC、个性化虚拟助手还是研究对话AI的开发者都能从本文中获得从核心概念到项目落地的完整方案。1. 背景与核心概念为什么需要“拟人化”角色AI在传统的任务型对话系统中AI的目标是高效、准确地完成指令如查询天气、设置闹钟。其回复风格通常是统一、中性且功能性的。然而在故事叙述、情感陪伴、游戏或某些特定服务场景中用户期待与一个拥有“灵魂”的角色互动。这个角色应该有独特的背景故事如吕洞宾是潇洒剑仙何仙姑是慈悲医者。稳定的性格特质铁拐李可能幽默不羁张果老则沉稳睿智。专属的知识领域与表达风格韩湘子谈音律曹国舅论朝纲说话文白程度、用词习惯都不同。动态的情感与记忆能记住与用户的过往互动并产生相应的情绪反应。这就是“角色扮演”或“人设AI”的核心需求。它不再是简单的“问答”而是“塑造”。大语言模型如GPT、Claude、国内各大模型的涌现能力为实现这一目标提供了强大的技术基础。我们可以通过精心设计的“提示词工程”和“上下文管理”引导模型“进入角色”。与通用聊天AI的关键区别一致性通用AI每次回答可能风格迥异角色AI必须在整个会话乃至多次会话中保持人设不崩塌。深度角色AI的回复应基于其内在逻辑和背景而非仅仅基于当前问题的最优解。交互性角色之间可以产生关联和互动形成更复杂的叙事网络。本文的实战目标便是构建一个能让“八仙”在数字世界“活”过来的系统。2. 环境准备与版本说明本项目是一个概念验证型的应用重点在于演示架构思路与核心代码实现。你可以根据自身技术栈进行调整。核心环境与工具编程语言Python 3.8因其在AI生态中的丰富库支持大语言模型接入方案一推荐用于快速原型使用OpenAI官方库或兼容其API的国内大模型平台如智谱AI、百度文心、阿里通义等的API。本文示例将使用OpenAI格式的API进行演示。方案二本地部署使用ollama、vLLM或text-generation-webui等工具本地部署开源模型如Qwen、ChatGLM、Llama系列。关键Python库openai用于调用API如果使用方案一。langchain一个强大的LLM应用开发框架能极大地简化提示词模板、记忆管理和链式调用。可选但强烈推荐fastapi/flask用于构建提供对话服务的Web API。pydantic用于数据验证和设置管理。开发工具任何你熟悉的IDE如VSCode、PyCharm或文本编辑器。版本管理建议使用pip和requirements.txt管理依赖。版本需要根据你的项目实际情况和所选模型平台调整本文重点演示配置思路。项目结构预览eight-immortals-chat/ ├── app/ │ ├── __init__.py │ ├── main.py # FastAPI 应用入口 │ ├── config.py # 配置文件API密钥、模型参数 │ ├── models.py # 数据模型定义角色、消息 │ ├── agents.py # 核心角色代理Agent定义 │ ├── memory.py # 记忆管理对话历史存储 │ └── prompts.py # 所有角色的提示词模板 ├── data/ │ └── immortals.json # 八仙角色的背景资料库 ├── requirements.txt └── README.md3. 核心原理与架构拆解实现多角色AI系统的核心在于“角色代理”模式。每个“仙⼈”都是一个独立的代理拥有自己的大脑LLM提示词、记忆库和工具。3.1 角色代理的构成一个完整的角色代理包含以下要素系统提示词定义角色的“灵魂”。这是最核心的部分它规定了模型在对话中必须遵循的身份、性格、知识和行为准则。对话记忆存储与该角色的历史对话用于实现上下文连贯性。可以是简单的列表也可以是向量数据库存储的长期记忆。工具能力角色可以调用的外部函数。例如“吕洞宾”可以调用一个“作诗”的函数“何仙姑”可以调用一个“草药查询”的函数。响应解析器处理LLM的返回结果将其转化为结构化的输出如纯文本、特定动作指令。3.2 提示词工程塑造角色灵魂提示词的质量直接决定角色扮演的成败。一个好的角色提示词应分层设计身份层我是谁我的名字、称号、出身。性格层我的性格特点开朗、孤傲、慈悲、说话风格文雅、直率、幽默。知识层我精通什么领域道法、医术、音律、我知道哪些秘密其他仙人的趣事。约束层我必须遵守什么规则不泄露天机、不参与凡人纷争、我不能做什么。目标层我本次对话的短期目标是什么解答疑问、讲述故事、寻求帮助。3.3 记忆管理让角色“记住”你记忆分为两种短期记忆/会话记忆保存在当前对话上下文窗口内的历史消息。LLM本身能利用这些信息进行连贯对话。长期记忆当对话轮次超出上下文长度或需要跨会话记忆时就需要将关键信息提取并存储到外部数据库如向量数据库在需要时进行检索召回。3.4 多角色调度与交互系统需要一个“调度器”或“主持人”来管理多个角色代理。当用户某个角色或话题涉及特定领域时调度器决定由哪个或哪些角色来响应。更高级的玩法可以实现角色之间的自动对话。4. 完整实战案例构建“八仙聊天系统”让我们一步步实现一个基础的、支持与单个指定角色对话的系统。4.1 项目初始化与依赖安装创建项目目录并安装依赖。# 创建项目目录 mkdir eight-immortals-chat cd eight-immortals-chat # 创建虚拟环境可选但推荐 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # macOS/Linux: source venv/bin/activate # 创建 requirements.txt echo “openai1.0.0 fastapi0.104.0 uvicorn[standard]0.24.0 pydantic2.0.0 python-dotenv1.0.0 langchain0.1.0 langchain-openai0.0.2” requirements.txt # 安装依赖 pip install -r requirements.txt4.2 定义角色数据与配置首先创建角色的背景资料库和配置文件。文件data/immortals.json[ { “id”: “lv_dongbin”, “name”: “吕洞宾”, “title”: “纯阳真人”, “personality”: “潇洒不羁侠义心肠好酒剑术通神。说话时而豪放时而蕴含玄机喜欢引用诗词典故。”, “background”: “唐代道士八仙之首受钟离权点化成仙。身背宝剑游历人间惩恶扬善。”, “knowledge”: [“剑道”, “道教经典”, “诗词歌赋”, “炼丹术”, “人间疾苦”], “speech_style”: “文白夹杂常用‘道友’、‘且看’、‘哈哈’等词语气洒脱。” }, { “id”: “he_xiangu”, “name”: “何仙姑”, “title”: “何仙姑”, “personality”: “慈悲善良心系苍生性情温和但外柔内刚。手持荷花清净高洁。”, “background”: “唐代女子因善心感动天地食云母成仙。精通医术常以草药救治百姓。”, “knowledge”: [“医术”, “草药学”, “养生之道”, “佛法禅机”, “女性修行”], “speech_style”: “语气温柔舒缓用词雅致充满关怀常以‘善哉’、‘且安心’开头。” } // ... 此处可继续添加铁拐李、张果老等其他六仙的数据 ]文件app/config.pyimport os from pydantic_settings import BaseSettings from dotenv import load_dotenv load_dotenv() # 从 .env 文件加载环境变量 class Settings(BaseSettings): # API 配置示例为OpenAI格式实际请替换为你的平台 api_base: str os.getenv(“API_BASE”, “https://api.openai.com/v1”) api_key: str os.getenv(“API_KEY”, “your-api-key-here”) # 务必在.env中设置 model_name: str os.getenv(“MODEL_NAME”, “gpt-3.5-turbo”) # 或 “gpt-4”, “claude-3-haiku”等 # 应用配置 character_data_path: str “data/immortals.json” class Config: env_file “.env” settings Settings()文件.env(在项目根目录创建不要提交到Git)API_BASEhttps://your-llm-provider.com/v1 API_KEYsk-your-real-secret-key-here MODEL_NAMEgpt-3.5-turbo-01254.3 构建提示词模板与角色代理这是最核心的模块。文件app/prompts.pyfrom langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate def build_character_system_prompt(character_info: dict) - str: “”“构建角色的系统提示词。”“” prompt f“”” 你正在扮演{character_info[‘name’]}{character_info[‘title’]}。 以下是你的核心设定你必须严格遵守 【身份与背景】 {character_info[‘background’]} 【性格与风格】 你的性格是{character_info[‘personality’]} 你的说话风格是{character_info[‘speech_style’]} 【知识与能力】 你精通{‘ ‘.join(character_info[‘knowledge’])}。 【行为准则】 1. 完全以{character_info[‘name’]}的第一人称视角思考和回复。 2. 保持性格和说话风格的高度一致不得跳出角色。 3. 你的知识来源于设定对于设定外的不确定信息可以表示不知或进行符合角色身份的推测。 4. 与用户对话时自然地融入你的背景故事和特质。 现在开始与访客的对话吧。 “”” return prompt.strip() # 也可以使用LangChain的模板更灵活 CHARACTER_CHAT_PROMPT ChatPromptTemplate.from_messages([ SystemMessagePromptTemplate.from_template(“{system_prompt}”), HumanMessagePromptTemplate.from_template(“{human_input}”), ])文件app/models.pyfrom pydantic import BaseModel from typing import List, Optional class Character(BaseModel): “”“角色数据模型。”“” id: str name: str title: str personality: str background: str knowledge: List[str] speech_style: str class ChatMessage(BaseModel): “”“单条消息模型。”“” role: str # “user”, “assistant”, “system” content: str class ChatRequest(BaseModel): “”“聊天请求模型。”“” character_id: str # 如 “lv_dongbin” message: str # 用户输入 session_id: Optional[str] None # 用于区分不同会话文件app/agents.pyimport json from typing import List from app.config import settings from app.models import Character from app.prompts import build_character_system_prompt, CHARACTER_CHAT_PROMPT from langchain_openai import ChatOpenAI from langchain.schema import AIMessage, HumanMessage, SystemMessage class CharacterAgent: “”“角色代理类封装了一个角色的对话能力。”“” def __init__(self, character: Character): self.character character self.system_prompt build_character_system_prompt(character.dict()) # 初始化LLM这里以LangChain的OpenAI封装为例 self.llm ChatOpenAI( base_urlsettings.api_base, api_keysettings.api_key, model_namesettings.model_name, temperature0.7, # 温度值影响创造性可根据角色调整 max_tokens500, ) # 简单的对话历史存储生产环境需用数据库 self.session_memory: List[dict] [] def _format_messages(self, user_input: str) - List: “”“格式化对话历史构造发送给LLM的消息列表。”“” messages [SystemMessage(contentself.system_prompt)] # 添加上下文历史这里简单取最近5轮 for msg in self.session_memory[-10:]: # 控制上下文长度 if msg[‘role’] ‘user’: messages.append(HumanMessage(contentmsg[‘content’])) else: messages.append(AIMessage(contentmsg[‘content’])) # 添加当前用户输入 messages.append(HumanMessage(contentuser_input)) return messages def chat(self, user_input: str) - str: “”“核心聊天方法。”“” # 1. 构造消息 formatted_messages self._format_messages(user_input) # 2. 调用LLM try: response self.llm.invoke(formatted_messages) ai_response response.content except Exception as e: ai_response f“{self.character.name}似乎若有所思未能即刻回应。或许是网络连接不畅错误详情{e}” # 3. 保存到记忆 self.session_memory.append({‘role’: ‘user’, ‘content’: user_input}) self.session_memory.append({‘role’: ‘assistant’, ‘content’: ai_response}) # 4. 返回响应 return ai_response def clear_memory(self): “”“清空当前会话记忆。”“” self.session_memory.clear() class CharacterManager: “”“角色管理器负责加载角色和提供Agent。”“” def __init__(self, data_path: str): self.characters: dict[str, Character] {} self.agents: dict[str, CharacterAgent] {} self.load_characters(data_path) def load_characters(self, data_path: str): with open(data_path, ‘r’, encoding‘utf-8’) as f: chars_data json.load(f) for char_data in chars_data: character Character(**char_data) self.characters[character.id] character self.agents[character.id] CharacterAgent(character) print(f“角色加载成功{character.name}”) def get_agent(self, character_id: str) - CharacterAgent: agent self.agents.get(character_id) if not agent: raise ValueError(f“未找到角色ID: {character_id}”) return agent4.4 创建Web API服务使用FastAPI构建一个简单的HTTP接口。文件app/main.pyfrom fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware from app.models import ChatRequest from app.agents import CharacterManager from app.config import settings app FastAPI(title“八仙聊天API”, description“与八仙真人对话的模拟接口”) # 添加CORS中间件方便前端调用 app.add_middleware( CORSMiddleware, allow_origins[“*”], # 生产环境应指定具体域名 allow_credentialsTrue, allow_methods[“*”], allow_headers[“*”], ) # 初始化角色管理器 character_manager CharacterManager(settings.character_data_path) app.post(“/chat”) async def chat_with_immortal(request: ChatRequest): “”“与指定角色聊天。”“” try: agent character_manager.get_agent(request.character_id) response agent.chat(request.message) return { “character”: request.character_id, “response”: response, “session_id”: request.session_id } except ValueError as e: raise HTTPException(status_code404, detailstr(e)) except Exception as e: raise HTTPException(status_code500, detailf“服务内部错误{str(e)}”) app.post(“/clear_memory/{character_id}”) async def clear_memory(character_id: str, session_id: str None): “”“清空指定角色的对话记忆。”“” try: agent character_manager.get_agent(character_id) agent.clear_memory() return {“message”: f“角色 {character_id} 的记忆已清空”} except ValueError as e: raise HTTPException(status_code404, detailstr(e)) app.get(“/characters”) async def list_characters(): “”“获取所有可用角色列表。”“” chars [] for cid, char in character_manager.characters.items(): chars.append({“id”: cid, “name”: char.name, “title”: char.title}) return {“characters”: chars} if __name__ “__main__”: import uvicorn uvicorn.run(app, host“0.0.0.0”, port8000)4.5 运行与验证启动服务在项目根目录下运行。uvicorn app.main:app --reload --host 0.0.0.0 --port 8000测试接口使用curl、Postman 或浏览器访问http://localhost:8000/docs查看自动生成的API文档。获取角色列表GET http://localhost:8000/characters与吕洞宾聊天curl -X POST “http://localhost:8000/chat \ -H “Content-Type: application/json” \ -d ‘{ “character_id”: “lv_dongbin”, “message”: “吕真人今日可有雅兴与在下论剑” }’预期会得到一个符合吕洞宾人设的回答例如“哈哈道友有礼了论剑之道在于心而不在于形。贫道游历人间数百载见过无数剑客唯‘诚’字最难。你且看我这背上宝剑虽未出鞘其意已先至……”5. 常见问题与排查思路在开发和运行此类系统时你可能会遇到以下问题问题现象可能原因排查与解决思路角色回复不符合人设1. 系统提示词不够详细或约束力弱。2. LLM的temperature参数过高导致随机性太大。3. 上下文历史中混入了其他角色的消息或系统指令。1. 强化提示词增加“必须”、“禁止”等强约束语句并加入示例对话。2. 适当降低temperature(如从0.9调到0.5)。3. 检查记忆管理逻辑确保每个Agent的对话历史是隔离的。API调用失败或超时1. API密钥错误或余额不足。2. 网络连接问题。3. 请求速率超限。1. 检查.env文件配置并在平台验证API状态。2. 检查网络或增加请求超时时间。3. 实现请求重试机制和退避策略。对话历史过长导致回复质量下降或API费用激增LLM有上下文窗口限制如4K、16K、128K tokens超出部分会被截断或导致性能下降。1. 实现记忆摘要功能定期将长对话总结成一段精简描述替换掉原始冗长历史。2. 使用向量数据库实现长期记忆将关键信息存入向量库每次对话前进行相关性检索只注入最相关的几条记忆。多角色同时响应混乱系统没有明确的调度逻辑所有角色都收到了用户输入。设计路由机制根据用户输入的关键词、提及或意图识别决定将消息路由给哪个角色。可以训练一个简单的分类器或使用规则匹配。角色‘遗忘’重要信息简单的列表式记忆无法持久化服务重启后丢失。将会话记忆持久化到数据库如SQLite、Redis。为每个session_id存储独立的对话链。6. 最佳实践与工程建议要将这个Demo提升到可用的生产级别或复杂项目需要考虑以下方面提示词优化与测试分模块编写将身份、规则、示例对话分开管理便于维护。使用Few-Shot示例在提示词中加入2-3轮高质量的示例对话能极大地引导模型输出格式和风格。持续评估建立一套评估体系如人工评分、自动化指标定期测试角色扮演的忠实度、一致性和趣味性。记忆系统的进阶设计短期长期记忆结合使用LangChain的ConversationBufferWindowMemory管理短期记忆使用VectorStoreRetrieverMemory或自定义逻辑管理长期记忆。记忆提取与存储不是所有对话都需要长期记忆。可以设计一个“记忆提炼”环节在对话结束时让LLM判断哪些信息值得长期存储如用户姓名、偏好、重要承诺并将其结构化后存入数据库。性能与成本优化异步处理使用asyncio处理并发的API请求提高吞吐量。缓存对常见的、通用的用户问题如“你是谁”可以缓存角色的固定回答减少不必要的LLM调用。Token管理密切监控输入输出的token数量优化提示词和记忆摘要逻辑以节省成本。安全与伦理内容过滤在LLM调用前后加入内容安全过滤层防止角色被诱导产生有害、偏见或不适当的言论。用户知情权明确告知用户正在与AI角色互动避免混淆。隐私保护对话记忆的存储和清理需符合隐私政策提供用户清除个人数据的入口。扩展性设计插件化工具为角色设计“工具调用”能力。例如曹国舅可以调用一个查询法律条文的工具函数。这可以通过LangChain Agents或OpenAI Function Calling轻松实现。角色关系图定义角色之间的已知关系如好友、师徒在对话中当一个角色被提及时可以将相关角色的知识作为上下文注入使互动更真实。通过以上步骤你不仅能让“八仙”活起来更能掌握构建复杂角色AI系统的核心方法论。这套架构可以平移到任何需要拟人化、多角色交互的场景如虚拟偶像、游戏叙事引擎、个性化教学助手等。

相关新闻

Python-sklearn-聚类

Python-sklearn-聚类

Sklearn 聚类算法 sklearn.cluster 提供 K-Means、层次聚类、DBSCAN、GMM 等经典聚类算法。🎯 基于划分的聚类 1. KMeans — K 均值聚类 ⭐ from sklearn.cluster import KMeansmodel KMeans(n_clusters8, # 簇的数量initk-means, # k-means…

2026/10/15 6:35:50 阅读更多 →
从“肃面爱音”实战解析音视频处理项目评估与落地指南

从“肃面爱音”实战解析音视频处理项目评估与落地指南

1. 先搞清楚“肃面爱音”到底是什么,以及它能解决什么问题 看到“肃面爱音”这个标题,很多人第一反应可能是某个新出的工具、模型或者某种音频处理技术。在没有详细正文和关键词的情况下,我们只能基于这个名称本身和常见的工程实践来拆解。这…

2026/10/13 21:00:40 阅读更多 →
AI漫剧制作全流程实战:从剧本到成片,整合豆包、即梦AI与剪映

AI漫剧制作全流程实战:从剧本到成片,整合豆包、即梦AI与剪映

最近在尝试用AI工具制作短视频时,发现从剧本到成片,整个流程涉及多个工具和环节,网上教程要么只讲单点,要么过于理论,新手很难串联起来。特别是想制作带有故事性的“AI漫剧”,更是不知道从何下手。本文将为…

2026/9/30 23:12:27 阅读更多 →

最新新闻

光子晶体光纤仿真降维实操:笔记本搞定模式干涉建模

光子晶体光纤仿真降维实操:笔记本搞定模式干涉建模

最近有个朋友跟我诉苦:他接手了一个光子晶体光纤传感器的项目,领导开口就问“你这个仿真要多大内存,是不是得租台服务器”,他按照常规三维时域软件一估算,发现模型随便就是几十亿网格,当场就自闭了。我跟他…

2026/10/15 7:41:00 阅读更多 →
Zotero本地增强方案:可视化+AI问答+全文翻译

Zotero本地增强方案:可视化+AI问答+全文翻译

1. 这不是“又一个Zotero插件”,而是一套可落地的学术工作流增强方案你有没有过这样的时刻:文献库攒了八百篇PDF,点开Zotero主界面却像面对一座没有索引的图书馆——知道里面有东西,但找不到入口;读到关键段落想查证原…

2026/10/15 7:41:00 阅读更多 →
一人公司的商业价值与运营策略解析

一人公司的商业价值与运营策略解析

1. 一人公司的产业定位解析在商业生态系统中,一人公司正以独特的组织形式填补着传统企业难以触及的市场缝隙。这种微型企业形态不同于自由职业者或个体工商户,其核心特征在于以公司法人身份运作,却保持极简的组织架构。我观察到近年来在软件开…

2026/10/15 7:41:00 阅读更多 →
考虑源荷不确定性的两阶段鲁棒机组调度:Yalmip+Gurobi实现

考虑源荷不确定性的两阶段鲁棒机组调度:Yalmip+Gurobi实现

1. 项目概述:源荷不确定性下的机组调度为何需要重做模型电力系统的机组调度问题,如果只在确定性场景下做,说实话已经不算难事了。常规的经济调度加机组启停约束,用线性规划或者混合整数线性规划就能收敛得很漂亮。真正让调度模型从…

2026/10/15 7:41:00 阅读更多 →
AI热点背后的认知校准:GPT-6、世界模型与术语通胀解析

AI热点背后的认知校准:GPT-6、世界模型与术语通胀解析

1. 标题背后的三重信号:一场被误读的“AI纪年”重构看到这个标题,我第一反应不是点开看内容,而是下意识翻了翻日历——2026年10月?再确认一遍手机系统时间:2024年9月。没错,这根本不是一份“新闻简报”&…

2026/10/15 7:41:00 阅读更多 →
2026年10月北京市联通宽带实测办理避坑全攻略

2026年10月北京市联通宽带实测办理避坑全攻略

上个月我翻了一下家里的宽带账单,一年算下来花了快两千块。很多人有个反常识的误区,觉得宽带资费越贵,网速就绝对越快。其实我拿着四家运营商的账单横向对比后发现,花双倍钱办的千兆宽带,实际体验甚至不如邻居办的五百…

2026/10/15 7:40:00 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →