LLM Setup zh CN - on22s/Side-Story GitHub Wiki

English · 简体中文 · 日本語

LLM 设置

LLM 将原文转换为标注脚本,并支持审校和角色设定相关任务。Qwen3-TTS 负责生成音频。二者是独立系统:使用本地 TTS,并不代表标注也在本地进行。

返回首页 · 上一步:安装 · 下一步:第一本有声书

三句示例从这里开始

如果已在 Alexandria 所在的同一台电脑上运行 LM Studio,并加载了能够遵循指令的模型,可按这一条连接路径操作:

  1. 在 Setup 选择 LLM Location → Local。
  2. 仅当服务器实际使用该地址时,将 Base URL 设为 http://localhost:1234/v1。仅当服务器无需身份验证时,才将 API Key 填为 local。
  3. 刷新 Model Name,选择服务器实际列出的准确模型。保持 How requests are sent → To the server address above,关闭故障切换。
  4. 按实际运行情况设置 Runs on this machine's GPU?:与 TTS 共用显卡选择 Yes,仅用 CPU 或位于其他机器则选择 No。
  5. 点击 Test Connection,再点击 Save Configuration。成功检查点是测试通过且保存得到确认。接着处理原创示例,逐句检查结果。

这是依据应用控件核对的连接示例,不是经过测试的模型与硬件配方。本次文档更新没有运行 LLM,也未确定最低内存要求。尚未选择或加载模型时,请参考所用服务器的模型指南;模型出现在列表中不代表它一定能可靠标注。Docker 需要容器内可访问的地址,不能直接套用这里的宿主机本地地址。

其他方式与详细说明在下方,无需同时配置所有路线。

选择使用方式

方式 所需条件 文本发送到哪里
本地 API 一个兼容 OpenAI、已加载指令遵循模型的服务器,例如 LM Studio 或 Ollama 发送到你配置的服务器地址;要在本地处理,请使用真正的本地端点。
远程 API 兼容的网络/托管端点、其模型 ID,以及所需的 API 密钥 发送给该服务提供方,包括书籍文本、提示词,以及相关的角色/脚本上下文。服务提供方可能收费。
手动 能逐一回答提示词的聊天服务或脚本,以及手动复制粘贴操作 Alexandria 的手动 LLM 传递模式不会为这些提示词发出 HTTP 请求。由你决定将它们粘贴到哪里;云端聊天服务仍会收到所粘贴的文本。

无论选择哪种方式,都应使用能够遵循结构化输出指令的模型,并先测试一小段文字。模型规模、推理设置、可用上下文和硬件需求各不相同。本指南不保证任何特定模型的准确率或速度。

连接本地或远程 API

打开 1. Setup(1. 设置),找到 LLM Settings (Script Generation)(LLM 设置:脚本生成)。

  1. 选择 LLM Location(LLM 位置):
    • Local(本地):使用本地配置
    • Remote (Thunder / network)(远程:Thunder / 网络):使用远程配置 每个位置各自保存连接和服务提供方设置。这个标签本身不构成隐私边界:请检查实际 URL,以及任何故障转移目标。
  2. 将 Base URL(基础 URL) 设置为兼容 OpenAI 的 API 基础地址。本项目中常见的本地示例如下:
    • LM Studio:http://localhost:1234/v1
    • Ollama:http://localhost:11434/v1 服务器启动和模型加载需要另外完成。请使用你的安装环境实际采用的地址和端口。
  3. 设置 API Key(API 密钥)。占位值 local 仅适用于不要求真实密钥的本地服务器。对于需要身份验证的服务提供方,请使用其密钥,或使用下文介绍的环境变量方式。
  4. 输入该端点实际提供的准确 Model Name(模型名称)。字段旁的刷新图标会列出服务器声明提供的模型;请选择所需模型,不要凭显示名称或文件名猜测。
  5. 展开 Provider request options: transport, GPU sharing, reasoning, headers(服务提供方请求选项:传输方式、GPU 共享、推理、请求头)。将 How requests are sent(请求发送方式) 保持为 To the server address above(发送到上述服务器地址)。
  6. 根据实际情况设置 Runs on this machine's GPU?(是否在本机 GPU 上运行?)。如果 LLM 使用应用所在主机的 GPU,请选择 Yes - shares the card with audio generation(是,与音频生成共用显卡)。否则选择 No - hosted API, CPU-only server, or another machine(否,使用托管 API、仅 CPU 的服务器或另一台机器)。Auto(自动) 会根据地址推断;对于转发的端点或仅使用 CPU 的本地服务器,这种推断可能不正确。
  7. 点击 Test Connection(测试连接)。它会列出模型并发送一个小型补全请求,因此即使只是测试,托管端点也可能收费。测试成功仅确认该探测请求通过,并不代表整本书的质量合格,也不代表上下文窗口足够。
  8. 点击 Save Configuration(保存配置)。测试修改后的设置不会保存或应用这些设置。切换位置后也需要保存。
  9. 在 Script(脚本) 中上传一小段书籍节选,在完整运行之前,使用 Test this book with the LLM(使用 LLM 测试本书) 或进行一次简短生成。按照脚本与审校检查结果。

Base URL 必须能够从运行 Alexandria 的机器访问。在 Docker 中,localhost 指的是容器;即使浏览器是在另一台电脑上打开,也仍需由 Alexandria 后端连接到 LLM。

尽可能避免将密钥直接写入配置

API Key(API 密钥) 字段支持 env:NAME,例如 env:ALEXANDRIA_LLM_KEY。在启动 Alexandria 的进程/容器中设置该环境变量,然后在 Setup 中保存这个引用。服务器会在发出请求时解析它。

直接输入的密钥会保存在设置文件中,即使界面将其掩码显示或隐去也不例外。请保护该文件及其备份。不要公开密钥、自定义身份验证请求头或未脱敏的诊断日志。使用环境变量引用时,迁移后也需要恢复对应变量;仅复制 config.json 不会复制该变量的秘密值。

手动复制粘贴传递

当没有受支持的 API,或希望亲自处理每一个模型请求时,可以使用手动模式。对于长篇书籍,这种方式工作量很大:一个任务可能涉及许多提示词和重试。

  1. 在 Setup(设置) 中展开 Provider request options: transport, GPU sharing, reasoning, headers(服务提供方请求选项:传输方式、GPU 共享、推理、请求头)。
  2. 将 How requests are sent(请求发送方式) 设为 Manual - I supply every reply myself(手动,由我提供每一条回复)。如果保存表单时需要,请在 Base URL 中保留一个有效值;手动流程不会使用该地址发送提示词。
  3. 如果希望整个任务保持手动处理,请关闭自动故障转移。点击 Save Configuration(保存配置)。跳过 Test Connection(测试连接) 和 Test this book with the LLM(使用 LLM 测试本书):当前手动流程不支持这些探测功能。
  4. 在 Script(脚本) 中上传一小段节选,点击 Generate Annotated Script(生成标注脚本) 来测试常规流程。需要回答时,会出现 Your turn(轮到你了) 面板。
  5. 点击 Copy prompt(复制提示词)。将完整提示词发送给你选择的模型、聊天服务或脚本,包括其中的格式要求。
  6. 仅将模型的最终回答粘贴到 Model reply(模型回复) 中,然后点击 Submit reply(提交回复)。不要粘贴模型的思考过程、对任务的讨论,或无关的聊天记录。
  7. 对每个请求重复此操作。正常的验证流程仍然会运行;如果回复不可用,就会生成另一个提示词。阅读本次运行输出的 Plan:(计划:),了解后续工作。

如果浏览器阻止自动复制,Copy manually(手动复制) 对话框允许你自行选中并复制文本。

手动传递仅适用于 LLM 请求。它不会让外部 TTS 变成本地服务,也不会阻止模型权重下载。如果将提示词粘贴到云端服务,其隐私和数据保留规则就会适用于这些文本。

超时、重试与可选故障转移

配置中提供以下控制项:

  • Request timeout (seconds)(请求超时,秒): 单个请求允许花费的时间。增大该值可能有助于响应缓慢但工作正常的服务器;它无法修复错误的 URL,也无法解决模型始终不回答的问题。
  • Connect timeout (seconds)(连接超时,秒): 允许用于建立连接的时间。
  • Minimum interval (seconds)(最小间隔,秒): 请求之间的间隔,可用于应对服务提供方的速率限制。
  • **API retries(API 重试次数)**及退避字段:控制失败后的重试方式,以及等待时间如何增长。
  • When retries run out(重试次数用尽时): **Fail the chunk(将该片段标记为失败)**或 Pause and wait for me(暂停并等待我处理)。暂停选项用于等待恢复,以便通过 Resume(继续) 重试同一个请求。Windows 不支持进程暂停/继续;有关基于检查点的取消与继续操作,请参阅脚本与审校。

Fail over to the other profile when this one gives up(当前配置放弃时,故障转移到另一配置) 允许在重试耗尽或因内容政策遭到拒绝后,将剩余任务切换到另一配置。请事先配置并测试备用方案。从本地故障转移到远程可能会披露文本并产生费用;开始前请阅读确认提示。如果无法接受备用目标,请关闭故障转移。服务提供方警告并不是费用估算或支出上限。

推理与服务提供方专用选项

  • Reasoning effort(推理强度) 会作为服务提供方请求设置发送。可选项包括 Server default(服务器默认值)、none — answer directly(无,直接回答)、low(低)、medium(中)、high(高) 和 xhigh(极高)。支持情况和行为取决于服务提供方/模型;对于此任务,更强的设置不一定更好。
  • Custom headers (JSON object)(自定义请求头,JSON 对象) 应用于该配置的请求。Custom request body (JSON object)(自定义请求正文,JSON 对象) 用于提供服务提供方专用的补全选项。仅使用服务器支持的设置,并确保内容是有效的 JSON 对象。
  • Custom request body(自定义请求正文) 中显式设置的 reasoning_effort 会覆盖下拉菜单。调试时请移除相互冲突的设置。
  • 高级生成控制项中的 Banned Tokens(禁用 Token) 并不是通用的“关闭推理”开关。不要指望通过禁用 <think>,就能让推理模型输出有效答案。
  • 在连接和简短标注都正常工作之前,请保持提示词预设/默认值不变。有关脚本行为和提示词编辑,请继续阅读脚本与审校。

Optimize LM Studio settings(优化 LM Studio 设置) 是可选的高级配置。它可能重新加载或重新配置模型。远程方式需要已经配置好的 Remote SSH host alias(远程 SSH 主机别名);填写托管 API 的 URL 并不会建立 SSH 访问。除非了解重新加载和内存占用的影响,否则不要在任务进行期间更改此设置。

随项目提供的 Start LLM 启动器

Pinokio 包含 Start LLM: Gemma 4 (Voice Tools)(启动 LLM:Gemma 4,声音工具) 和 Start LLM: Qwen 2.5 14B (Voice Tools)(启动 LLM:Qwen 2.5 14B,声音工具)。它们是可选方案,也可以改用自行管理的 API 服务器。

  • 先完成核心安装,再安装声音工具。
  • 获取与所选启动器兼容的 GGUF 模型,并以 pinokio.js 中配置的准确文件名放到检出的仓库根目录。启动器不会下载模型权重。
  • 启动器使用 llama-cpp-python[server],在回环地址的可用端口上监听,并将本地配置写入默认的 app/config.json。
  • 如果使用 ALEXANDRIA_CONFIG_PATH 或自定义数据根目录,不要假定启动器所做的编辑会写入你正在使用的设置文件。请检查 Setup(设置) 中的 URL 和模型,并自行保存所需配置。
  • 它的 GPU 卸载和上下文设置仍必须适合你的硬件。启动本地 LLM 可能会占用 TTS 所需的内存。

连接问题:故障排查。音频配置和输出:渲染与导出。

参考来源

已对照项目主分支(main)提交 8c7a33cb310ab9264594a09ca27e48271585094f 核实:Setup 和手动模式界面、界面中的保存/测试行为、连接探测、服务提供方选项和密钥解析、手动请求和书籍预检、随项目提供的 LLM 启动器。

⚠️ **GitHub.com Fallback** ⚠️