2026年大模型应用落地:新手程序员必看的技术选型指南(收藏版)

大模型应用落地:新手程序员必看的技术选型指南(收藏版)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
     
      
     

在产品经理视角实现AI应用落地,如何做好AI技术选型,非常很重要,产品实现最终还是需从用户实际场景出发去平衡成本、效率和体验。最牛的技术不一定能兼容所有场景,按OpenAI对AGI的五层分类 Chatbot、Reasoner、Agent、Innovator、Organization。当前像Cursor、Manus这类Agent企业是先进生产力代表了,但也不适合用Agent去解决所有问题。产品设计界一句老话 “如无必要,勿增实体”,在AI应用领域同样适用。

在落地AI应用过程中,常使用到Prompt、RAG、Workflow、Agent 、模型微调五类关键技术,这五类技术分别适用于不同的场景,在选型过程中可以根据技术特性去执行落地。

先说结论:

怎么选:用“问题类型”来对号入座

只要“写得像样就行”(广告文案、新闻摘要)→ 先用 Prompt。加上输出格式校验,够用且快。

“必须说对事实”且依赖内部资料(产品政策、合规口径)→ 用 RAG,让答案有引用可追溯。

“一步做不完,需要审校/回退/多人协作”(合同审核、报表发布)→ 上 Workflow,把节点明文化。

“要自己会想、会找、会串API”(拉数→分析→生成方案→建工单)→ 试受限型 Agent,明确边界与停止条件。

“高频固定任务要又稳又省”(品牌风格文案、结构化抽取)→ 在已有闭环基础上做 SFT 微调。


作用:定义模型角色、任务目标、输入输出格式与约束,是最轻量的“产品功能”实现方式。

Prompt像一张写作提纲

适合:不需要特定知识、逻辑链条较短的创造性或归纳性任务。

价值: 零训练成本、即时生效、灵活性极高。

缺点:容易产生幻觉(胡编乱造),且无法处理多步骤复杂问题。

例子:活动文案、邮件改写、接口调用草案(自然语言→JSON)。

1、如何用好它

一份好的提示词框架可以包含以下六要素

1)角色 (Role)

2)任务 (Task)

3)背景/上下文 (Context)

4)要求/约束 (Constraints)

5)范例 (Example) (可选但强烈推荐)

6)目标/风格 (Goal/Style)

一个糟糕的提示词:“写一篇关于健康的文章。”

运用模板后的优秀提示词:

【角色】 你是一位经验丰富的健康营养师。

【任务】 撰写一篇科普短文,

【背景】 向30-40岁的办公室白领介绍如何通过调整饮食来缓解久坐带来的健康问题。

【要求/约束】 文章需要包含3个具体的饮食建议,每个建议配一个简单的食谱例子。文章风格要轻松易懂,避免使用难懂的医学术语。字数在600字左右,以Markdown格式输出,包含标题和小标题。

【范例】 例如,第一个建议可以是“增加膳食纤维摄入”,食谱例子是“一份燕麦莓果早餐杯”。

【目标】 目的是让读者感到实用和可行,并愿意立即尝试。

提示词撰写进阶

1)分步思维 (Chain-of-Thought):对于复杂任务,要求AI分步进行。

示例:“请按以下步骤解决这个问题:首先,分析用户需求;其次,列出可能的产品;最后,给出你的推荐并解释理由。”

2)自我验证:要求AI对自己输出的内容进行审查和修正。

示例:“输出完成后,请以批判性的视角检查一遍内容,看是否有事实性错误或逻辑矛盾,并列出可能的改进点。”

3)提供外部信息:如果问题涉及特定文本,直接粘贴进来。

示例:“请基于以下会议记录【粘贴记录内容】,生成一份行动计划清单。”

4)迭代优化:AI的输出不完美时,不要重新提问,而是在原对话基础上给出修改指令。

示例:“很好,但第二个观点可以再深入一些,并提供数据支撑。” 或者 “能不能让语气更正式一点?”

2、参数调整

在使用提示词构建产品时,除了把user prompt写好之外,还可以通过调整模型输入项及参数去达到预期效果。

可重点关注

  • system_prompt: 系统提示词,定义模型的行为和角色
  • user_prompt: 用户提示词,模型需要回答的问题
  • temperature: 控制输出的随机性,值越高越随机
  • top_p: 控制采样范围,值越小越聚焦

3、场景实践探索

3.1、文本纠错

以将大模型应用在文本纠错场景为例,让模型找到错别字,但文章一长模型输出时就会随机发散,这时候调整模型的temperature和top_p就会起到很好的效果。

以下图为例

模型1,设置

  • temperature = 0.1 (控制输出的随机性,值越高越随机)
  • top_p = 0.1 (控制采样范围,值越小越聚焦)

模型2,设置默认值

  • temperature = 0.1 (控制输出的随机性,值越高越随机)
  • top_p = 0.1 (控制采样范围,值越小越聚焦)

结果对比

模型1 temperature = 0.1 (控制输出的随机性,值越高越随机)

top_p = 0.1 (控制采样范围,值越小越聚焦)

在执行纠错任务时更加聚焦,更稳定且准确。

案例一:左侧为模型1,右侧为模型2

3.2、文本总结和格式调整

以此前定制的总结行业信息并进行格式调整为例,为了尽量保证文章信息不失真,以及收集到的多篇文章内容一起综合排版,文字内容不能不能由大模型随意发挥,在此前提下可以将大模型的TOP-P和temperature数值调低,减少偏离原文的情况出现。

这里可以扩展到很多场景,如果输入的信息源足够可靠,又依赖大模型去生成的情况下都应调低大模型生成的数值,这样才会更加贴近原文,减少因为模型随机性造成篡改的情况。

案例一:文本摘要生成应用

案例二:格式排版生成应用

4、top_p和temperature是如何工作的

大模型在执行生成任务时,top_p 和 temperature 是最重要的两个参数,他决定了大模型的“创造力”和“确定性”。大模型在生成每一个下一个词(token)时,并不是只输出一个答案,而是会计算一个概率分布,即所有可能的词及其对应的出现概率。

例如,在句子 “The cat sat on the ___” 之后,模型可能会给出如下概率:

mat: 0.35

floor: 0.25

couch: 0.15

bed: 0.1

tree: 0.05

banana: 0.04

… (成千上万个其他词)

temperature 和 top_p 的作用,就是在这个概率分布的基础上,决定最终选择哪个词作为输出。

4.1、Top-p (核采样)

简单理解: 他决定入围下一个词的范围,池子有多大由 TOP-P 决定。p 代表概率累计和的一个阈值。

工作原理:模型会从概率最高的词开始,将它们的概率依次累加。当累计概率刚刚超过设定的 top_p 阈值时,就停止。然后,从这些被选中的词中,根据它们的概率权重随机选择一个输出。

举例:

假设 top_p = 0.8,还是上面的例子:

mat (0.35) -> 累计 = 0.35

floor (0.25) -> 累计 = 0.60 (仍然 < 0.8)

couch (0.15) -> 累计 = 0.75 (仍然 < 0.8)

bed (0.1) -> 累计 = 0.85 (已经 > 0.8,停止)

低 top_p (e.g., 0.1 - 0.5): 候选词池非常小,只包含极少数最可能的词。输出非常集中和确定。

高 top_p (e.g., 0.8 - 1.0): 候选词池很大(当设为1.0时,等同于考虑所有词)。输出更多样化。

适用场景:

当你希望排除那些明显不合理(概率极低)的选项,同时又想在合理的范围内保留一定的随机性时,top-p 是一个非常有效的方法。它比单纯的 temperature 更能智能地限制选择范围。

4.2、Temperature (温度)

简单理解:它决定了模型在选择下一个词时,是更倾向于选择高概率的“安全”词,还是冒险选择低概率的“惊喜”词。

工作原理:

低温度 (eg:0.1 - 0.5): 会锐化原始的概率分布。高概率的词变得更高,低概率的词变得更低。模型会变得非常保守和确定,输出内容高度一致、可预测、 factual(基于事实)。

适用场景: 事实问答、代码生成、数据提取、技术文档撰写——任何需要高度准确性和一致性的任务。

高温度 (eg:0.8 - 1.5+): 会平滑原始的概率分布。降低高概率词的优势,提高低概率词的机会。模型会变得更有“创造力”和“随机性”。

适用场景: 创意写作、诗歌生成、故事构思、角色对话、头脑风暴——需要多样性和惊喜的任务。

4.3、最终效果

低 Top_p + 低 Temperature :极度确定、保守、缺乏变化。

高 Top_p + 低 Temperature :最终效果:稳定且略有变化的合理输出。

低 Top_p + 高 Temperature :这是一个非常矛盾且有冲突的设置,通常应避免使用。

高 Top_p + 高 Temperature :最终效果:天马行空、极具创意且极其不稳定。

在使用Prompt构建产品时,可以根据实际场景选择参数输入,达到预期效果。


作用:通过检索增强将私有知识注入模型,解决大模型“训练数据缺乏、幻觉、垂直领域专业知识缺乏”等问题。

适合:问题必须“答得准、可追溯”。

例子:客服知识问答、内部政策问答、合规检索、研发知识库助手等。

如果基座模型能支持的足够大的token数,或领域沉淀的知识不多的情况下,不需要用到RAG,直接将上下文和用户Query一起送给大模型生成就行。

当你的场景适合RAG,也不要期待它能解决你所有的问题,RAG只是在你与大模型对话时,从海量领域数据里找到一些相关信息补充到上下文中,仅此而已。不能解决的问题还很多,比如异形数据结构化问题,知识切片后上下文断层问题,需多步推理才能解决的复杂问题等。这些都会影响内容生成质量。

1、如何用好它

RAG核心的功能就是针对用户Query,在送给大模型的前置环节在知识库中检索最相关的信息作为补充上下文,一起送给模型去做回答。在校验RAG系统效果时可以在两个维度上做要求:

召回率:能够找到最相关的信息;

准确率:不相关的信息不要;

RAG技术以及针对实际业务场景的设计,主要就是锚定这两个维度指标的提升去的。但实践中期望两个指标都非常高不太现实,因为RAG是一套非常复杂的系统,每一个环节的问题都会影响最终的结果。很多时候只能取个相对合适相对平衡的值。如果你的业务采用了RAG,这又需要回到产品经理要如何做选择去平衡成本、效率和体验的问题了。

用好RAG还是要回归到流程中的每一个节点针对业务场景不断优化核心流程。以下是最重要的关键节点:

数据解析、文本切片、 文本向量化建立索引、Embedding、检索、Reranking、生成。

1.1、文本解析与信息结构化

原始数据的质量直接决定RAG问答效果的上限。非结构化数据需要转化为富含语义的结构化信息。这个节点非常重要!!!

以下是一些知识解析实践后的方法总结:

  1. 使用专业解析库能有效保留文本格式、表格和布局信息。
  2. 对于扫描件或手写体等非标准文本,需结合OCR技术或视觉大模型优化信息提取。
  3. 表格数据的结构化处理

格式转换:将表格转为Markdown或HTML格式,确保数据结构清晰。

连续性保障:避免切片导致的上下文断裂,对空白单元格填充默认值,拆分合并单元格以保持逻辑完整。

语义强化:将表头与主体内容映射为键值对(KV),提升模型理解能力。

当前仍存在跨页表格合并困难、异形表格表头识别不准等问题,很难做到通用一套方案解决所有问题,需结合人工校验或针对特定规则补充。(此前与腾讯云团队交流,他们也是对特定一类格式的表格,如金融行业中财报结合算法去优化)。

以下是一些在解析环节可尝试的进阶方案:

元数据提取与实体增强

元数据提取:通过模型自动捕获文档的创建时间、作者、章节等信息,作为检索阶段的辅助依据。

实体抽取关联:利用NER技术识别关键实体(如人名、地点),并建立知识图谱关联,丰富语义表示。

这些是RAG系统高效运作的基础,只有精准的结构化数据,才能支撑后续的检索与生成质量。

1.2、文本切片

RAG上传的文本需切割为语义连贯的片段(chunk),平衡检索效率与上下文完整性。选择合适的方法切片是为了将chunk送给大模型生成时的信息时完整不包含噪声的,没有最好的方法,需根据自身业务场景和数据结构去判断用哪种切片方法。

主流方法对比:

除了上述切片方法之外,RAG还会面临表格数据,多模态数据(图、视频、音频等)。如何将这类数据解析,并采用合适的方式将信息切分成不同chunk也非常重要。

1.3、向量索引构建

文本向量化的质量与索引构建决定了检索效果的天花板,其目的是将文本切片转换为数值向量(嵌入),并建立高效的数据结构(索引)以实现快速相似性搜索。

在索引构建环节可以需与检索环节一起来看,是采用语义检索还是混合检索。

此外可以在建立索引时增强可以增加一些文本内容,优化检索效果。

语义增强就是将chunk和该chunk所在的文档内容(这里是整片论文)传给LLM,让LLM结合整个文档对这段chunk作个概述,然后把这个概述的信息append到chunk的内容中,从而增强在后续进行语义检索时的精确性。

1.4、检索

在建立索引时就应该做好数据库及技术选型,混合检索能兼顾语义和关键词精确匹配。

如果当前场景的检索需要兼顾关键词和语义的时候,可以考虑混合搜索(需要结合文档内容、chunking和关键字词构建等环节);相对于关键字词匹配检索,混合搜索可以降低查询编写的规范性(不一定要有特定的关键词出现)以及提升查询的容错性(可能会有拼写错误或者不恰当的描述);相对于语义相似检索,混合搜索可以增加一些领域专有信息的更精准匹配,提升检索结果的准确性。

检索查询问法优化

在检索环节除了根据业务场景选取语义检索或混合检索之外,还可以通过业务流程上的优化提高检索召回率和召回准确率。

1、查询扩展,为原始查询添加同义词,近义词,上位词,如建立领域知识词库,在查询时做替换提高检索查询准确率。

2、问题改写,让LLM将简短、模糊或不完整的查询重写为更全面、详细的形式。在多轮会话时这一步更重要,需要根据上下文信息,让模型改写生成新的完整准确的问题。

 Query改写任务prompt 任务目标: 将用户输入的原始query改写为更完整、清晰的句子,需完成以下操作: 1. 指代消解:将代词(如"它"、"这个"、"那里")替换为具体指代对象 2. 成分补全:补充缺失的主语/谓语/宾语等关键成分 3. 保持原意:确保改写后的句子与原句语义一致 4。严格控制改写:如果用户输入的query中不含有代词,也不缺失 关键成分,禁止随意对成分进行补全 输入格式: 原句:[用户输入的原始query] 上下文:[对话历史或前文(可选)] 输出格式: 改写句:[完成指代消解和成分补全的句子] 拼接tag:[need_context/no_context] 示例说明: - 示例1(需指代消解+成分补全) 原句:它需要充电 上下文:用户之前提到"我的手机电量不足" 改写句:手机需要充电 拼接tag:no_context - 示例2(成分缺失) 原句:正在下载 上下文:用户之前说"我在浏览器里" 改写句:浏览器正在下载文件 拼接tag:need_context - 示例3(无需修改) 原句:明天下午三点的会议取消了 上下文:无 改写句:明天下午三点的会议取消了 拼接tag:no_context 输出规则: 1. 拼接tag判断: - 若改写需依赖上下文信息(如补充主语),标记为`need_context` - 若改写仅通过单句即可完成,标记为`no_context` 2. 确保改写后的句子是完整的独立句,无成分缺失或指代不明。 

3、子查询生成,对于复杂、多方面的复合查询,将其分解成多个独立的子查询,分别检索后再合并结果。但实践下来开源大模型扩写子查询效果不太好,有该场景诉求,建议使用微调的小模型,扩写的子查询任务会更聚焦。

4、元数据过滤,切片小节处有提到切片环节抽取元数据作为检索依据,在检索前或检索后,利用文档的元数据(如创建日期、作者、类别、来源)对结果进行过滤。它通过排除大量不相关文档,很大程度提升了召回准确率,去除了文档噪声。

1.5、重排

重排是将改写后的问题和每个召回的chunk单独汇总后,Rerank模型重新计算一个分数,再从高到低排序,选出前K(TOP-K)的chunk再送给大模型生成。

一般检索环节数量会大于等于rerank环节chunk数。,这样能用较低的代价提升Top N结果的精度和召回质量。

RAG简单说就是向量检索、重排、生成,但如果想要做好这套系统,需要关注流程每个非常多的细节,根据自身业务特点从数据环节开始设计,逐步提升每个环节的召回率和准确率,这样才能让你的RAG系统不至于成为一个玩具。

2、场景实践探索

在落地RAG应用时,会觉得这个过程像是个黑盒,有一份适合业务场景的评测数据集非常重要,在后续迭代验证时,能够多次使用可以用心准备。RAG系统在数据解析、文本切片、 文本向量化建立索引、Embedding、检索、Reranking、生成环节中每个细节的调整都会影响系统的召回率和准确率,最终影响模型生成答案的质量。

当用户提问,经过RAG系统最终送给大模型时的文本结构可能包括:

system prompt

chat history(如有多轮)

召回重排后的chunk

user query

还有送给大模型的参数

当然如ChatDoc页面端也支持一些参数提供给用户配置。

2.1、RAG应用到意图识别的尝试

上文说到RAG是一套非常复杂的系统,从数据解析、文本切片、 文本向量化建立索引、Embedding、检索、Reranking每个环节都值值得深入研究,其实把RAG拆开来看如检索环节也可以将能力复用到其他场景中比如“意图识别”,根据用户query,匹配预先配置的问题库,比对语义相似度去识别用户意图,再执行后续流程,下图是一个RAG系统结合意图识别的案例流程。


1、Workflow与Agent的定义和区别

“Agent”有多种定义方式。有人将其视为完全自主系统,能在较长时间内独立运行,使用各种工具完成复杂任务。也有人用来描述更固定的、预定义的工作流。Anthropic将这些变体归类为类Agent系统,但在工作流和智能体间做了重要区分。总的来说:

Workflow 本质上是一套预定义的固定流程,类似于工厂中的流水线。每个步骤都具有明确的输入与输出,节点之间的逻辑严格按预定规则执行——一旦条件满足,便自动进入下一阶段。

Agent 的运行方式不是在预定轨道上推进,而是在开放环境中主动探索“如何实现目标”。一个典型的 Agent 应具备以下三大核心能力:

  • 感知环境:理解输入内容与任务要求;
  • 规划路径:动态生成任务链,而非依赖事先编写的固定流程;
  • 执行行动:调用工具完成子任务,并可根据反馈实时调整策略。

二者对比如下图:

概念描述还比较抽象,有几张执行流程图就能理解区别了。

2、一个简单的ReAct Agent流程

核心就是“思考(Thought) - 行动(Action) - 观察(Observation)”的循环,用伪代码表示:

一段React agent核心代码可以分为几段

1、定义模型可自主调用的工具(tools)。

2、system prompt中描述清楚任务规则和约束条件。

publicclassReActAgent { privatestaticfinalStringAGENT_ACTION_TEMPLATE=“工具名称,必须是[{0}]中的一个”; privatestaticfinal List 
      
    
        
          TOOLS = Arrays.asList( // 工具1:查询补货计划单详情 Tool.builder() .name(“查询补货计划单详情”) .desc(“根据补货计划单号查询补货计划单详情”) .parameters(Collections.singletonList( Tool.Parameter.builder() .name(“orderCode”) .desc(“补货计划单号”) .type(“string”) .required(true) .build() )) .build(), // 工具2:审批补货计划单 Tool.builder() .name(“审批补货计划单”) .desc(“根据补货计划单号审批补货计划单”) .parameters(Collections.singletonList( Tool.Parameter.builder() .name(“orderCode”) .desc(“补货计划单号”) .type(“string”) .required(true) .build() )) .build() ); 
        

3、模型在上述定义的规则中循环,知道任务执行完成。

public static void main(String[] args) // LLM的AK,注意不要泄露,不要泄露,不要泄露 String ak = args[0]; // 创建 Scanner 对象用于接收用户输入 Scanner scanner = new Scanner(System.in); // 多轮会话的记忆 Memory memory = new Memory(); System.out.println(“请提问,开始和AI的对话吧”); // 循环逻辑 while (true) // reAct StringBuilder latestInput = new StringBuilder(input); String output = reAct(ak, memory, latestInput); System.out.println(“AI输出: ” + output); memory.add(new Memory.ChatMsg(Memory.ChatMsg.USER, input)); memory.add(new Memory.ChatMsg(Memory.ChatMsg.AI, output)); // 开始下一轮对话 } // 关闭 Scanner 、 scanner.close(); } private static String reAct(String ak, Memory memory, StringBuilder latestInput) ‘ data-report-query=‘spm=1001.2101.3001.9621’>立即使用

小讯
上一篇 2026-04-11 19:31
下一篇 2026-04-11 19:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/257560.html