Ollama使用
Ollama部署
正常下载运行即可,简单流畅
代码调用Ollama的本地模型
把base_url改为http://localhost:11434/v1
把model改为对应的本地模型名称,如:qwen3:4b
OpenAI库
OpenAI库基本使用
获取客户端对象:api-key和base-url
调用模型:
model:选用的模型
messages:提供给模型的消息
system角色:人设,幕后导演,影响所有回答
assistant角色:代表AI助手的回答,让AI记得之前说过什么
user角色:代表用户,发送问题、指令或需求
处理结果
| |
OpenAI库的流式输出
| |
OpenAI库附带历史消息调用模型
| |
大模型Prompt工程
提示词优化基本思想
Zero-shot:是指在训练阶段不存在与测试阶段完全相同的类别,但是模型可以使用训练过的知识来推广到测试集中的新类别上。 在模型训练中,它可以通过已知类别特征来推理识别新类别。例如,模型已知马(四脚兽)、虎(有条纹)、熊猫(黑白色)的特征,在被告知 “斑马是四脚兽、有黑白色的条纹” 后,就能推理识别出斑马。 在提示词优化中,它是基于模型已有的预训练能力,不提供任何示例,仅通过语言描述任务的要求、目标和约束,让模型直接生成结果,核心是 “用语言定义任务,信任并调用模型的预训练知识”。比如,只通过指令 “请判断‘’包围的用户评论中的情感倾向,输出正面或负面。‘这款代餐鸡胸肉饱腹感很强,吃起来也不柴,很推荐!’”,模型就能完成情感判断。
Few-shot:是指模型在学习了一定类别大量数据的基础上,面对新类别时,仅需少量样本就能快速完成学习;当样本数量仅为 1 时,称为 one-shot learning(单样本学习),也属于 Few-shot 的特例。 在模型训练中,常采用相似度判断的方式。例如,基于少量企鹅样本,通过相似度计算来判断未知图片中是否包含企鹅。 在提示词优化中,它主要是提供少量示例,让模型参考示例的格式、逻辑来完成任务,以此提升回答的对齐精度。比如,给模型两个提取产品信息的示例后,它就能按相同的 JSON 格式,从新的产品描述中提取出产品名称和核心卖点。
提示词优化案例-金融文本分类任务
| |
Json数据格式
Text文本,非结构化,抽取信息不方便 CSV(固定分隔符)文本,结构化,抽取信息方便,但是有一定风险 JSON 是一种带格式的字符串,它的核心作用是方便不同程序之间进行数据交互。
在 Python 中,JSON 和常见的数据结构可以直接对应:JSON 对象对应 Python 字典,JSON 数组对应包含多个字典的 Python 列表。
使用 Python 的 json 模块可以轻松实现两者的转换:
json.dumps(字典或列表, ensure_ascii=False):将 Python 数据结构转为 JSON 字符串,ensure_ascii=False可以保证中文正常显示。json.loads(json字符串):将 JSON 字符串转回为 Python 数据结构。
提示词优化案例-金融词信息抽取
| |
RAG开发
LangChain的简介
它是 Python 的第三方库,是开发大语言模型(LLM)相关业务功能的 “集成工具集”,可以简化 LLM 应用的开发流程,后续也是学习 RAG(检索增强生成)开发的核心框架。 核心功能 API,LangChain 提供的能力包括: 提示词优化:辅助提升提示词效果的工具接口; 模型调用:支持对接各类 LLM 模型的统一接口; 会话记忆:实现对话上下文的存储与管理; 文档管理分析:对各类文档进行处理、检索、分析的功能; Agent 智能体构建:支持开发具备自主决策能力的智能体; 功能链式执行:将多个功能按逻辑串联执行的能力。
LangChain环境部署
RAG工作流程
这是关于RAG(检索增强生成)的核心说明,可整理为以下结构化内容:
RAG的核心定义
RAG是一种优化大模型输出的技术:在向模型提问前,先从已有知识库/文档中检索相关信息,将这些信息整合到提问中,让模型基于更精准、信息量更足的输入给出回答。
RAG的工作流程:
- 离线流程(知识预处理,对应“R”) 需预先处理知识库:将文档私有知识加载后,分割为合适长度的片段,再通过向量化(转为向量表示)存储到向量数据库中,完成检索前的准备。
- 在线流程(增强+生成,对应“A+G”) 用户提问后,先从向量数据库中检索相关知识片段,将这些片段与原问题融合为新的Prompt,再交给大模型生成回答。
RAG的核心价值:
- 解决知识实效性问题:弥补大模型训练数据的“截止时间”限制,可接入最新文档(如财报、政策),让模型输出贴合最新信息。
- 降低模型幻觉:回答基于检索到的事实性资料,而非模型自身记忆,大幅减少编造信息的概率。
- 成本与效率优势:无需重新训练模型,仅需更新知识库即可实现知识迭代,相比微调(Fine-tuning)成本更低、效率更高。
向量的基本概念
text-embedding-v1文本嵌入模型
文本向量是文本的“数学身份证”,它通过将文字的语义信息转换为固定长度的数字列表,让计算机能够理解文字的含义,并基于这些数字进行语义相似度计算。
文本向量的关键要点
- 向量的生成 通过“文本嵌入模型”(如text-embedding-v1)完成“文本→向量”的转换(即文本嵌入过程)。
- 向量的匹配方式 借助算法(如余弦相似度)计算不同向量之间的距离,以此判断文本语义的相似程度。
- 向量的维度
- 维度代表模型用多少个“抽象语义特征”描述文本,每个维度对应一个特征的强度;
- 维度越多,语义匹配的精准度越高,但同时会增加计算和存储的性能压力,需根据场景平衡精度与成本。