首页
看点啥
插画图片
首页 看点啥 大模型是如何随机说话的?从 Temperature 到 LangChain 工作流实战

大模型是如何随机说话的?从 Temperature 到 LangChain 工作流实战

2026-07-22 0

作为一名 AI 应用开发者,你一定遇到过这样的困惑:同样一段 prompt,大模型有时妙语连珠,有时却答非所问;想让 AI 写首诗,结果却蹦出一堆逻辑混乱的“幻觉”内容。这背后的“罪魁祸首”正是随机性控制参数——Temperature 和 TopK。而要让它们稳定、可控地服务于业务,我们还得请出 LangChain 这位“工作流编排大师”。

大模型是怎么随机说话的?从 Temperature 到 LangChain 工作流实战

今天,我们就从这两个参数说起,一路聊到如何用 LangChain 把“随机”驯服成“创意”和“严谨”两条生产链。


一、随机性的“旋钮”:Temperature 与 TopK

大模型本质上是基于概率预测下一个词(token)的机器。每次生成时,模型会为词典里所有词打分,然后根据概率分布采样。随机性参数就是调整这个采样策略的阀门

️ Temperature(温度)

TopK(采样候选集)


二、幻觉问题:随机性是把双刃剑

提高随机性能带来惊喜,但也可能引发“幻觉”——模型生成看似合理但完全错误的内容。如何驾驭?

所以,不要试图用一个模型解决所有问题,而是为不同业务配备不同的参数配置。而这,正是 LangChain 的用武之地。


三、为什么需要 LangChain?

如果每次调用 API 都硬编码 prompt、手动拼接输出,项目会变得臃肿难维护。LangChain 提供了一套标准化的 AI 工作流(Chain) ,把“输入 → 提示词模板 → 模型调用 → 输出解析”串成一条流水线。

核心模块(@langchain/core)

开发效率提升


四、实战:搭建“创意”与“严谨”双写作流水线

下面我们用 LangChain + DeepSeek 模型(兼容 OpenAI API)实现两条写作链。一条 temperature=0.8, TopK=4 专攻创意散文,另一条 temperature=0.2, TopK=8 用于写实记录。

1. 环境准备

javascript

 复制代码// .env 文件
DEEPSEEK_API_KEY=your_api_key
DEEPSEEK_API_BASE_URL=

bash

 复制代码pnpm add dotenv @langchain/openai @langchain/core

2. 导入依赖与模型初始化

javascript

 复制代码// JSmain.mjs
import 'dotenv/config';
import { ChatOpenAI } from '@langchain/openai';
import { StringOutputParser } from '@langchain/core/output_parsers';
import { PromptTemplate } from '@langchain/core/prompts';// ---------- 创意模型(高温度,小TopK) ----------
// 适合写故事、诗歌、广告语,需要发散但不脱离主题
const creativeModel = new ChatOpenAI({
  model: 'deepseek-v4-pro',
  temperature: 0.8,          // 高随机性,激发灵感
  topK: 4,                   // 只从概率前4个词采样,防止跑偏
  maxTokens: 600,
  apiKey: process.env.DEEPSEEK_API_KEY,
  configuration: {
    baseURL: process.env.DEEPSEEK_API_BASE_URL,
  },
});// ---------- 严谨模型(低温度,大TopK) ----------
// 适合描述事实、技术文档、合同条款
const preciseModel = new ChatOpenAI({
  model: 'deepseek-v4-pro',
  temperature: 0.2,          // 保守,选最高概率词
  topK: 8,                   // 保留更多候选,保证信息完整性
  maxTokens: 600,
  apiKey: process.env.DEEPSEEK_API_KEY,
  configuration: {
    baseURL: process.env.DEEPSEEK_API_BASE_URL,
  },
});

3. 定义提示词模板(PromptTemplate)

将主题和风格要求抽离为变量,方便复用。

javascript

 复制代码// 模板里同时包含“任务”和“风格指令”
const storyPrompt = PromptTemplate.fromTemplate(`
  请写一篇短篇散文,主题:{theme}。
  风格要求:温柔治愈,篇幅在200字左右,不要分段,文字细腻有画面感。
`);

4. 输出解析器(统一返回纯文本)

StringOutputParser 会把模型返回的复杂消息对象转成简单的字符串,便于下游使用。

javascript

 复制代码const outputParser = new StringOutputParser();

5. 构建工作流(Chain)

使用 .pipe() 方法把“模板 → 模型 → 解析器”串联起来,形成两条独立的流水线。

javascript

 复制代码// 创意写作链:模板 → 创意模型 → 解析器
const creativeChain = storyPrompt.pipe(creativeModel).pipe(outputParser);// 严谨写作链:模板 → 严谨模型 → 解析器
const preciseChain = storyPrompt.pipe(preciseModel).pipe(outputParser);

6. 执行调用(喂入原料)

javascript

 复制代码async function runWriteDemo() {
  const theme = '秋日山野晚风';  console.log(' 创意写作模式(temperature=0.8, topK=4)');
  const creativeText = await creativeChain.invoke({ theme });
  console.log(creativeText);
  console.log('n------------------n');  console.log(' 严谨写实模式(temperature=0.2, topK=8)');
  const preciseText = await preciseChain.invoke({ theme });
  console.log(preciseText);
}runWriteDemo().catch(err => {
  console.error(' 运行出错:', err);
});

7. 运行结果对比(示例)


五、总结:驯服随机性,打造可靠AI应用

参数组合适用场景效果特征
temp=0.2, topK=8代码、法律、事实稳定、准确、信息完整
temp=0.8, topK=4创意写作、营销文案丰富、有惊喜、但不偏离主题
temp=0.5, topK=6聊天机器人、通用平衡,日常对话

最后,记住一句话:AI 的随机性不是缺陷,而是创意源泉;但只有用工程化手段驾驭它,才能成为生产力工具

喜欢(0)

上一篇

大模型随机性完全指南:从概率抽签到 LangChain 实战

大模型随机性完全指南:从概率抽签到 LangChain 实战

下一篇

反硬凑契约:当 AI 自信输出 130 行废话时

反硬凑契约:当 AI 自信输出 130 行废话时
猜你喜欢