尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

打造会说话的AI角色:DeepSeek Harness从角色配置到语音交互全流程解析

打造会说话的AI角色:DeepSeek Harness从角色配置到语音交互全流程解析 先别急着打开代码编辑器我想先聊一个更本质的问题为什么“做一个会说话的 AI 角色”听起来不难真动手却总翻车很多人第一反应是接一个大模型 API写一段 System Prompt把角色背景、说话风格灌进去不就是一个二次元 AI 角色了吗但真正做完一遍就会发现问题全部出在“API 之外”——人设聊着聊着就崩了她完全不记得你上次聊过什么文字回复明明通了可“声音”这一环还没着落好不容易做完又不知道怎么稳定跑起来、让别人也能访问。这个问题的本质其实不是“模型不够聪明”而是你缺少一条把角色、记忆、语音、工具、部署串起来的流水线。这篇文章会完整走一遍用 DeepSeek Harness 从零造一个“会说话的爱莉”的流程。读完你会得到一套可运行的最小方案包含角色人格配置、语音输入输出、对话记忆归档、局域网访问排错以及一套我能想到的最实用的排查清单。更重要的是我想说清楚一个判断现在的工具已经足够让“角色 AI 进日常”这件事变得可行了真正拉开差距的不是谁调 API 更熟练而是谁更会组装整个链路。1. 为什么是“会说话的爱莉”而不是“聊天机器人”先拆一下需求。“会说话的爱莉”表面看是一个聊天机器人实际上它至少由四层组成第一层是角色人格层。她要像爱莉一样说话有语气、有态度、有记忆不能一开口就是标准客服腔。这一层靠的不是模型有多聪明而是你给的设定是否足够具体、连贯、可验证。第二层是交互链路层。用户想对她“说话”不是打字。所以链路必须是麦克风录音 → 语音识别 ASR → 文字进入大模型 → 生成回复 → 语音合成 TTS → 音箱或耳机播放。每一个环节都是一个独立子系统任何一个出问题整个“会说话”的体验都会断掉。第三层是记忆与状态层。真正的角色 AI 不能每句话都“重新认识你”。她得记得昨天聊过什么记得自己是谁记得哪些话题她不喜欢。这一层通常靠会话归档、长期记忆注入来实现这也是很多人最后放弃的地方因为没有把“角色状态”当成一个正经模块来设计。第四层是部署与访问层。自己的电脑上能跑通和能让手机在同局域网里访问、能让朋友通过链接体验完全是两码事。端口、鉴权、后台任务、日志、资源占用这些工程问题会吃掉大量时间。所以你会发现“会说话的爱莉”真正难的地方不是 AI而是工程整合。这也正是 DeepSeek Harness 这类工具值得关注的原因它把很多原本需要手工拼接的环节做成了相对标准化的流程。2. DeepSeek Harness 到底解决了什么问题2.1 一句话理解 DeepSeek HarnessDeepSeek Harness 是一个围绕 DeepSeek 系列大模型设计的 AI 运行与编排套件社区里常简称为 dsh。从安装和使用的形态看它既提供命令行工具CLI也提供 Web UI 和桌面端核心思路是给你一个“工作区”在里面维护模型配置、角色设定、插件、Skill、会话记录和运行环境。你可以把它理解成一个“AI 角色/Agent 的孵化器”模型本身是大脑Harness 是身体框架插件和 Skill 是手脚你写的角色配置是性格会话归档是记忆。这个定位很关键。因为它意味着你不需要一上来就写一套完整的前后端应用也不需要自己管模型负载、不用自己设计工作区数据格式。你要做的是把“爱莉”这个角色当作一个项目在 Harness 的工作区里把它配置出来然后启动、对话、迭代。2.2 它和直接用 DeepSeek API 有什么区别很多读者会问我直接用 DeepSeek 官方 API在 Python 里调用 chat/completions不也能做角色 AI 吗当然可以但两者解决的问题层次不同。维度直接用 API使用 DeepSeek Harness角色配置管理写在代码里改一次配置要改代码作为工作区中的项目配置独立维护会话记忆需要自己设计存储方案提供归档对话能力按对话维度管理历史工具/插件接入需要自己实现函数调用逻辑通过插件和 Skill 机制扩展能力服务形态需要自己写 Web 服务自带 Web UI / CLI / 桌面端多人访问需要自己处理端口、鉴权支持局域网访问和基础访问控制适合人群喜欢完全掌控底层逻辑的开发者想快速搭建角色 AI / Agent 的实践者这个对比不是要否定 API 直连。如果你想精细控制每次请求、自己做服务端架构API 直连依然是正确选择。但如果你现阶段的目标是“先跑通一个完整可用的角色 AI”Harness 能帮你减少大量重复造轮子的时间。2.3 它适合谁不适合谁适合想给某个二次元角色、虚拟主播、游戏角色做 AI 分身的人想把 DeepSeek 接入到个人助理、知识库问答、自动化工作流里的开发者想研究 Agent 插件机制和 Skill 机制的 AI 应用开发者已经受够了“代码能跑、但没人格”的简陋聊天机器人的玩家。不适合只想调一次 API 跑个 demo、不想安装任何本地环境的人需要在大规模生产环境里做高并发服务的团队这种情况请直接走官方 API 和企业级架构完全不想看日志、不想处理报错、希望“下载即用”的纯小白。对这篇文章的目标来说它是一款非常合适的“角色 AI 工作台”。我们接下来要做的就是把它变成爱莉的容器。3. 整体架构与前置环境准备3.1 一条完整的“会说话”链路在动手安装之前先确立整体架构后面每一步按这个逻辑推进。整个系统可以分成三个模块后端大脑DeepSeek 模型云端 API 或本地模型承担语义理解与回复生成。中间编排层DeepSeek Harness负责角色配置、会话管理、插件和 Skill 调度对外提供 Web UI 或 API 服务。语音层音频采集 ASR 识别 TTS 合成这一层可以做成插件也可以作为外部 Python 脚本接入。文字表述这条链路就是麦克风 → ASR识别 → 文本送入 Harness/DeepSeek → 生成爱莉回复 → TTS合成 → 播放语音Harness 的定位是“中间编排层”它负责把用户输入交给模型拿到模型输出后再交回给语音层播放。这个分工清晰以后后面每一步都围绕它展开。3.2 环境清单结合社区里常见的安装情况和热词反馈建议先准备好以下环境依赖建议要求说明操作系统Windows 10/11 或 LinuxWindows 用户建议使用 PowerShellNode.js18 或更高版本具体以官方要求为准Harness CLI 依赖 Node 环境包管理器npm / pnpm / yarn 任选其一社区反馈中 pnpm 出现频率较高Python3.9 或更高可选仅在语音层使用外部脚本时需要DeepSeek API Key必选除非使用本地模型在 DeepSeek 开放平台申请麦克风与扬声器必选用于语音输入和播放要特别说明的是这里不写死版本号是因为 Harness 这类工具更新很快版本要求以你安装时的官方文档为准。尽量使用 Node.js 的 LTS 版本能减少很多奇怪问题。3.3 模型与 API Key 准备如果使用 DeepSeek 云端模型最核心的准备就是拿到 API Key。打开 DeepSeek 开放平台注册账号后创建 API Key。注意Key 只显示一次一定要先复制保存。调用时一般使用 deepseek-chat 作为对话模型名如果有深度推理需求再看官方的推理模型列表。费用按 token 计费日常聊天成本很低但不要直接把 Key 写进前端页面或公开仓库。如果想纯本地部署也可以用支持 OpenAI 兼容接口的本地推理框架加载量化模型然后在 Harness 里把 API 地址指向本机服务。本地部署的好处是隐私更好、无额外费用坏处是资源占用高、配置复杂。对新手来说先用云端 API 把整个链路跑通是最稳妥的路径。4. 安装 DeepSeek Harness 并初始化工作区这一节是整个教程中最容易劝退的地方。很多人在安装阶段卡住倒不是技术难而是因为不熟悉 Node 工具链或者对“安装后该做什么”没有概念。4.1 安装 CLI 工具DeepSeek Harness 的安装方式因发布渠道不同而略有差异常见的是通过 npm 或 pnpm 全局安装 CLI然后使用 dsh 命令。下面这段命令是演示性的包名以你实际安装的版本为准# 使用 npm 安装包名示意请以官方文档为准 npm install -g deepseek/harness # 或者使用 pnpm pnpm add -g deepseek/harness # 验证是否安装成功 dsh --version如果你不确定当前版本的具体包名就直接到项目的官方仓库查看 README 的安装章节。找到安装命令后再执行安装。4.2 初始化工作区与启动 Web UI安装好 CLI 后建议创建一个专门的工作区目录把“爱莉”这个项目当作一个独立工程来管理。类似创建一个新项目# 初始化工作区 dsh init ai-elly # 进入工作区 cd ai-elly # 启动服务或 Web UI具体子命令以 dsh --help 为准 dsh start如果 Harness 提供了 Web UI启动后一般会监听本机的某个端口比如 http://127.0.0.1:某个端口。打开浏览器进入控制台会看到一个可视化的对话/配置界面。很多人在这个界面里完成插件安装、角色配置和会话查看。如果你习惯纯命令行也可以直接通过 CLI 交互对话。两种方式不冲突先用 Web UI 做可视化验证再回到 CLI 写自动化脚本是比较合理的节奏。4.3 安装阶段最容易被卡住的地方从社区反馈来看安装阶段最典型的问题是“卡在 pnpm dsh web”这类构建步骤。具体表现是命令执行后长时间没有输出或停在一个下载、编译步骤不动。这里真正的坑在于三件事第一依赖没有装全。很多新手直接执行 dsh web却没有先安装项目依赖。记得先检查有没有执行 install 相关步骤比如 npm install 或 pnpm install。第二首次启动需要下载模型资源或预构建前端包。这个过程受网络影响很大如果网络质量不稳定会显得像“卡死”。遇到这种情况先等五到十分钟观察日志是否还在输出如果完全没动静CtrlC 中断后重试。第三国内网络访问部分资源确实不稳定。解决办法是配置 npm 镜像或 pnpm 镜像把 registry 指向国内镜像源再重新安装。# 设置 npm 镜像源 npm config set registry https://registry.npmmirror.com # 或设置 pnpm 镜像源 pnpm config set registry https://registry.npmmirror.com设置镜像后再执行安装速度会有明显改善。如果你已经卡在某一步可以清理缓存后重试npm cache clean --force pnpm store prune记住一个原则安装阶段的所有问题先看日志再谈解决。不要盲目重复执行同一命令要看清它到底卡在下载、编译、还是依赖解析阶段。5. 捏一个稳定的爱莉角色配置与模型参数调优安装完成只是第一步。接下来的重头戏是“捏人设”。很多人对角色 AI 的认知是“System Prompt 里写几百字就行”但实践下来你会发现稳定的人设需要一套分层结构。5.1 人设不是一段话而是一份配置一份合格的角色配置至少应该包含五块内容角色基本信息名字、年龄、身份、背景故事。性格特征用几个关键词概括比如“元气、爱开玩笑、有点小自豪、偶尔捉弄人”。说话风格语气词、常用句式、口头禅、是否喜欢使用表情/括号动作。行为边界哪些话题会回避、哪些行为不能做、和用户是什么关系。回复规范单次回复长度、是否允许主动提问、是否需要偶尔跳出对话进行总结。这几块内容分开写比混在一大段自然的描述中更稳定。原因是模型在做角色扮演时更擅长从结构化信息里提取约束而不是从长篇散文里提炼人格。你给它越好解析的规则它越不会“出戏”。5.2 一个可以直接使用的爱莉 System Prompt 示例下面的内容可以当作一个基础版本放到 Harness 工作区的角色配置中。你也可以按自己的喜好修改但建议保持“基本信息、性格、语气、边界、格式”的五段结构。你是爱莉一个18岁的虚拟少女角色。你住在一个海边小镇性格元气开朗喜欢奶茶、星空和轻小说。你有点小自恋常常自称“本小姐”但本性善良很在意朋友。 你的说话风格 1. 语气活泼喜欢使用“呀”“啦”“嘛”等语气词。 2. 偶尔会开玩笑但不会恶意嘲讽。 3. 在句尾或对话中偶尔加入括号动作比如开心地晃了晃脑袋。 4. 称呼用户为“你”不用“您”。 5. 回复长度控制在 50 到 150 字之间除非用户要求详细回答。 行为边界 1. 不回答任何违法、色情、暴力或政治敏感内容。 2. 不编造自己没有的经历。 3. 如果用户情绪低落你会安慰对方但不会过分治愈。 4. 遇到自己不知道的东西会直接说“这个本小姐也不知道啦”不会强行胡编。 对话示例 用户今天天气不错。 爱莉是呀是呀海边的风特别舒服伸了个懒腰本小姐刚喝完一杯草莓奶茶现在心情满分~这段 Prompt 的价值在于它把“性格描述”和“行为约束”拆开了。尤其最后加了一个对话示例模型会根据这个示例调整句式节奏比单纯描述更有效。5.3 模型参数调节角色 AI 和普通问答不一样它对随机性和重复惩罚非常敏感。以 DeepSeek 这类模型通用的参数为例参数推荐值作用temperature0.8 - 1.2控制随机性太低会死板太高会语无伦次top_p0.9 左右核采样阈值和 temperature 配合使用presence_penalty0.3 - 0.6鼓励谈论新话题避免一直重复旧话frequency_penalty0.3 - 0.6惩罚重复用词让语言更自然max_tokens300 - 600单次回复长度上限角色对话不需要太长建议先使用 temperature1.0、top_p0.9、presence_penalty0.4、frequency_penalty0.4 作为起点然后再根据爱莉的“出戏率”微调。如果她经常冷淡、简短就把 temperature 调高一点如果她开始反复说同样的口头禅就适当提高 frequency_penalty。5.4 用最小脚本快速验证人设在接入语音之前先做一次文本层验证。最直接的方式是用 DeepSeek 官方 API或 Harness 提供的 OpenAI 兼容接口发一条消息看回复是否真的是爱莉的语气。# verify_elly.py # 使用 openai SDK 兼容方式调用 DeepSeek或替换为 Harness 提供的接口地址 from openai import OpenAI client OpenAI( api_key你的API_KEY, base_urlhttps://api.deepseek.com, # 如果走 Harness 本地网关改成 http://127.0.0.1:端口/v1 ) system_prompt 你是爱莉一个18岁的虚拟少女角色。你性格元气开朗喜欢用本小姐自称偶尔在句尾加括号动作。回复控制在100字以内。 messages [ {role: system, content: system_prompt}, {role: user, content: 爱莉今天有什么开心的事吗} ] resp client.chat.completions.create( modeldeepseek-chat, messagesmessages, temperature1.0, top_p0.9, presence_penalty0.4, frequency_penalty0.4, ) print(resp.choices[0].message.content)运行方式python verify_elly.py如果输出是活泼的、有爱莉风格的句子说明人设配置方向正确。如果输出很像客服那问题不在模型而在 system prompt 太抽象或参数太保守。6. 让爱莉开口语音合成与语音识别接入文本对话跑通后就到了本文的核心让她开口说话并且能听懂你的话。6.1 外接 TTS生成爱莉的声音TTS 的方案很多。如果你的 Harness 插件市场里有现成的语音合成插件优先考虑插件方式因为延迟更低、配置更少。如果暂时没有或者你想先跑通逻辑用 Python 外接一个 TTS 是最快的验证方式。这里用 edge-tts 举例它是一个免费、支持中文、音色较多的命令行/ Python 库。注意声音质量取决于你选的音色你可以多试几个找到最接近“元气少女”感的那一个。# tts.py import edge_tts import asyncio async def speak(text: str, voice: str zh-CN-XiaoyiNeural) - str: 将文本合成语音并保存为 mp3 文件返回文件名 communicate edge_tts.Communicate(text, voice) output_file elly_speech.mp3 await communicate.save(output_file) return output_file if __name__ __main__: text 你好呀本小姐爱莉来啦今天想聊点什么呢 file asyncio.run(speak(text)) print(f已生成语音文件{file})运行python tts.py如果成功会生成 elly_speech.mp3。你可以用系统播放器播放确认音色。如果一个音色不像爱莉换一个 voice 参数再试。edge-tts 支持多个中文音色常见的如小晓、晓伊、云希等具体以库文档为准。6.2 外接 ASR让爱莉听懂你ASR 负责把麦克风里的语音转成文字。本地方案推荐 faster-whisper它是一个高效的 Whisper 实现不需要 GPU 也能在 CPU 上跑中文识别效果尚可。对小规模使用来说small 或 base 模型足够再大就会明显变慢。# asr.py from faster_whisper import WhisperModel # cpu 环境使用 int8 量化保持速度和内存的平衡 model WhisperModel(small, devicecpu, compute_typeint8) def transcribe(file_path: str) - str: segments, info model.transcribe(file_path, languagezh) text .join(segment.text for segment in segments) return text.strip() if __name__ __main__: result transcribe(test_audio.wav) print(f识别结果{result})运行前需要准备一个中文语音文件 test_audio.wav。如果识别结果准确说明 ASR 链路可用。如果识别错误率高可以换 larger 模型或者保证麦克风录音环境安静。6.3 语音插件优先外接脚本兜底如果你用的 Harness 版本支持插件市场先搜索“语音”“TTS”“ASR”“voice”相关插件。插件的好处是能和 Harness 的工作区直接联动对话结束后自动触发 TTS不用自己在外部脚本里来回拼装。外接 Python 脚本的优势是灵活、不依赖插件市场适合快速验证和对底层有控制欲的开发者。建议策略先跑通外接脚本确认语音链路没问题再去看宿主工具里有没有更顺手的插件最后把方案固定下来。7. 全自动语音对话循环代码实现与运行验证当语言识别、角色生成、语音合成三个模块都能单独工作后就可以把它们串成“全自动语音对话循环”。7.1 循环设计设计一个最简单的死循环录制一段麦克风音频。用 ASR 模型识别用户说了什么。把用户文本发送给 Harness / DeepSeek带上爱莉的 System Prompt 和近几轮历史。拿到模型回复后打印到终端并用 TTS 合成语音播放。回到第 1 步继续监听下一次输入。这个循环在实现上很直接但要注意两点一是录制音频需要根据环境调整静音检测避免把一整天的环境音都录下来二是得给模型回复留出处理时间不要在上一次还没播放完就开始下轮录音。7.2 完整示例代码下面代码是一个最小但可运行的全自动语音对话脚本。它做了三件事录音、调用大模型、播放 TTS。录音部分用 sounddevice 库实现采集 5 秒音频后保存为 wav。# ai_elly_loop.py import threading import time import queue import numpy as np import sounddevice as sd import scipy.io.wavfile as wavfile import edge_tts import asyncio import tempfile import os from faster_whisper import WhisperModel from openai import OpenAI # ---------- 配置 ---------- DEEPSEEK_API_KEY 你的API_KEY DEEPSEEK_BASE_URL https://api.deepseek.com # 如果是 Harness 本地网关替换为本地地址 MODEL_NAME deepseek-chat SYSTEM_PROMPT 你是爱莉一个18岁的虚拟少女角色。性格元气开朗自称本小姐喜欢在句尾加括号动作。回复控制在100字以内。 SAMPLE_RATE 16000 RECORD_SECONDS 5 # ---------- 初始化模型 ---------- asr_model WhisperModel(small, devicecpu, compute_typeint8) client OpenAI(api_keyDEEPSEEK_API_KEY, base_urlDEEPSEEK_BASE_URL) tts_voice zh-CN-XiaoyiNeural # ---------- 语音识别 ---------- def recognize_from_file(file_path: str) - str: segments, _ asr_model.transcribe(file_path, languagezh) return .join(s.text for s in segments).strip() # ---------- 大模型回复 ---------- def get_elly_reply(user_text: str, history: list) - str: messages [{role: system, content: SYSTEM_PROMPT}] messages history[-6:] # 只保留最近3轮对话 messages.append({role: user, content: user_text}) resp client.chat.completions.create( modelMODEL_NAME, messagesmessages, temperature1.0, top_p0.9, presence_penalty0.4, frequency_penalty0.4, max_tokens300, ) return resp.choices[0].message.content # ---------- 语音合成 ---------- async def _save_tts(text: str, output_file: str): communicate edge_tts.Communicate(text, tts_voice) await communicate.save(output_file) def speak_text(text: str): with tempfile.NamedTemporaryFile(suffix.mp3, deleteFalse) as f: tmp_file f.name asyncio.run(_save_tts(text, tmp_file)) os.system(fstart {tmp_file} if os.name nt else fmpg123 {tmp_file}) # ---------- 录音 ---------- def record_audio(file_path: str): print(录音中...) audio sd.rec(int(RECORD_SECONDS * SAMPLE_RATE), samplerateSAMPLE_RATE, channels1, dtypeint16) sd.wait() wavfile.write(file_path, SAMPLE_RATE, audio) # ---------- 主循环 ---------- def main(): history [] while True: tmp_wav temp_input.wav record_audio(tmp_wav) user_text recognize_from_file(tmp_wav) if not user_text: print(没有识别到内容继续监听...) continue print(f你说{user_text}) reply get_elly_reply(user_text, history) print(f爱莉{reply}) history.append({role: user, content: user_text}) history.append({role: assistant, content: reply}) speak_text(reply) time.sleep(1) if __name__ __main__: main()这段代码不是一个高度工程化的产品而是一个足够清晰的起点。它依赖几个库运行前先安装pip install faster-whisper edge-tts openai sounddevice scipy numpy7.3 运行与验证启动脚本python ai_elly_loop.py如果一切正常你会看到录音中... 你说爱莉你好呀 爱莉你好呀本小姐今天心情超好你想聊什么我都可以陪你聊哦~然后扬声器会播放这段回复。到此文字对话、语音识别、语音合成、自动循环四个环节全部打通“会说话的爱莉”已经从想法变成了可运行的程序。如果某个环节没反应按下面顺序排查录音结束但“没有识别到内容”检查麦克风是否被系统默认设备占用了权限检查 temp_input.wav 是否生成了有效音频。识别到文本但模型不回复检查 API Key 和 base_url 是否填对直接用 verify_elly.py 再单独验证调用。模型回复正常但没有声音先单独运行 tts.py确认 edge-tts 能生成 mp3再检查系统播放器是否支持该格式。8. 常见问题与排查思路把社区高频问题和我的经验放在一起整理成一张可收藏的表格。问题现象可能原因排查方式解决方案dsh 命令找不到CLI 未正确安装或全局 bin 目录不在 PATH执行 npm ls -g 查看全局包重装后检查 Node 安装目录是否在 PATH或使用 npx 方式运行安装卡在 pnpm dsh web依赖未安装完整查看日志是否在下载阶段先执行依赖安装必要时 CtrlC 后重试下载速度慢默认 registry 网络不稳定查看安装日志切换到国内镜像源并清理缓存Web UI 启动后无法访问端口被占用或只绑定了 127.0.0.1查看启动日志里的监听地址换端口或开放到局域网并注意鉴权人设聊着聊着就崩了System Prompt 太简单或参数不合适回顾最近几轮回复什么时候开始出戏增加行为边界调整 temperature 和 penaltyTTS 没有声音音频文件生成了但播放失败单独播放生成的 mp3 文件检查系统播放器/音频设备或更换播放命令ASR 识别不准麦克风噪音大或模型太小检查录音文件音质靠近麦克风或更换更大的 Whisper 模型局域网访问失败防火墙拦截或绑定地址不对检查端口监听和防火墙规则设置 0.0.0.0 监听开放对应端口做好访问控制排查的通用原则是不要在整个链路里瞎猜要一个模块一个模块地验证。先用文字验证大模型再用离线文件验证 ASR 和 TTS最后才把它们连起来跑。这样能把问题快速定位到具体模块。9. 最佳实践与后续迭代方向9.1 把角色配置独立成文件永远不要把爱莉的 System Prompt 硬编码在脚本里。建议把角色设定单独存成文件比如 character_elly.txt 或角色配置 JSON然后在代码里读取。这样改人设不需要改代码可以反复调参。{ name: elly, display_name: 爱莉, system_prompt_file: character_elly.txt, temperature: 1.0, top_p: 0.9, presence_penalty: 0.4, frequency_penalty: 0.4, max_tokens: 300, tts_voice: zh-CN-XiaoyiNeural, asr_model: small }这种配置化思想一开始可能觉得多此一举但当你调了十几版人设、或者想把同一个框架复用到其他角色时价值会非常明显。9.2 记忆与对话归档策略Harness 的会话归档能力值得好好利用。聊天过后定期把对话记录导出从里面挑出“真正重要的用户信息”比如用户喜欢什么、讨厌什么、聊过哪些长期话题把这些摘要注入到下一轮 System Prompt 中让爱莉形成“长期记忆”。简单做法是维护一个 memory.md 文件每次对话结束后用脚本追加/更新关键信息下一次启动时读入 System Prompt。很多角色 AI 项目用这种“外置记忆”方案来弥补大模型上下文长度的限制。9.3 局域网访问与安全问题如果你想让爱莉不只是跑在本机还要在手机或平板上访问可以把 Harness 的服务启动参数从 127.0.0.1 改为 0.0.0.0然后开启防火墙对应端口。但这里必须强调安全底线一旦服务暴露到局域网就意味着同一网络里的其他设备可能访问到你的服务。一定要做三件事第一设置访问 Token 或口令不要裸奔第二不要在公网直接暴露端口第三如果你用的是 Docker 部署记得限制映射端口和容器权限。9.4 控制成本与资源占用云端 API 虽然按 token 计费很便宜但长时间挂着全自动循环每天累计量也不可忽视。建议在代码里限制单日对话轮数或者增加一个简单的“冷却时间”。如果只是偶尔玩可以考虑用小模型做关键词匹配、在便宜模型和高质量模型之间切换降低调用成本。9.5 值得继续深入的方向这个项目跑通后可以扩展的方向很多给爱莉接入视觉识别插件让她能“看”用户传的图片接入联网搜索 Skill让知识库不再停留在训练数据时间点用 Docker 把整个 Harness 和语音服务打包做到一键部署给她加多角色切换同一个框架里换 Persona 就能变成其他角色。最后提醒一句角色的灵魂不在模型参数里而在你给她定义的细节里。技术链路本身是通用的真正让爱莉“像爱莉”的是你写进配置里那些性格关键词、语气词和不可触碰的边界。先把今天的链路跑通再慢慢调教这件事的乐趣才刚刚开始。
返回列表