01-LLM调用基础

发布时间:2026/6/30 20:46:20
01-LLM调用基础 LangChain RAG 实战一LLM 调用基础创作者Yardon |GitHubgithub.com/YardonYan |版本v1.0 |AI 应用时代的开启2022 年底 ChatGPT 发布后AI 应用开发的门槛大幅降低。以往需要训练模型的场景现在只需要调用 API。但光有 API 不够——你需要把用户的提问变成可以发送给 AI 的 Prompt把 AI 的回答解析成结构化数据把外部知识注入 AI 的上下文把多个 AI 调用串联成管道LangChain 就是来解决这些问题的。LangChain 是什么LangChain 是一个大模型应用开发框架。它的核心价值是把 LLM 和外部世界数据、工具、API、数据库连接起来。用户问题 → LangChain → LLM → 答案 ↑ 外部知识 (文档/数据库)LangChain 把应用开发拆成几个模块Model I/OPrompt 模板、LLM 调用、输出解析Data Connection文档加载、切割、向量存储Chain把多个步骤串联成工作流Memory让 AI 记住对话历史Agent让 AI 调用工具自主决策LLM 调用OpenAI 风格接口pipinstalllangchain langchain-openaiimportosfromlangchain_openaiimportChatOpenAI os.environ[OPENAI_API_KEY]sk-...llmChatOpenAI(modelgpt-4o,temperature0.7,max_tokens1000,)基本调用fromlangchain.schemaimportHumanMessage responsellm.invoke([HumanMessage(content用一句话解释量子计算)])print(response.content)Chat 模型 vs 文本模型LangChain 区分两种模型类型用途示例Chat Model对话多轮交互GPT-4o、Claude、GeminiLLM单次文本补全GPT-3.5-turbo-instructfromlangchain_openaiimportOpenAI# 文本模型llmOpenAI(modelgpt-3.5-turbo-instruct)resultllm.invoke(Write a Python function)Prompt 工程让 AI 听懂你的话Prompt 是你和 AI 之间的合同——越清晰执行结果越好。fromlangchain.promptsimportPromptTemplate# 简单模板templatePromptTemplate.from_template(把以下中文翻译成{source_lang}{text})# 链式调用prompttemplate.invoke({source_lang:English,text:知识就是力量})responsellm.invoke(prompt)Few-shot Prompting给 AI 一些例子让它照着做templatePromptTemplate.from_template( 将以下成语翻译成英文只输出翻译结果 例 刻舟求剑 → marking the boat to find the sword (clinging to old ways) 亡羊补牢 → {input} → )chaintemplate|llm resultchain.invoke({input:守株待兔})# 输出lying in wait for a hare by a tree (waiting for windfall)流式输出实时看到答案生成用户输入一段话LLM 生成答案可能需要 5-10 秒。如果等全部生成完再返回用户会以为页面卡住了。流式输出让文字一个字一个字地出来fromlangchain.callbacks.streaming_stdoutimportStreamingStdOutCallbackHandler llmChatOpenAI(modelgpt-4o,streamingTrue,callbacks[StreamingStdOutCallbackHandler()])llm.invoke(写一首关于春天的诗)LangChain 会把 token 逐个 yield 出去前端可以实时渲染。多模态不止文字现代 AI 模型可以处理图片、音频、文档fromlangchain_openaiimportChatOpenAI llmChatOpenAI(modelgpt-4o)# 图片理解fromlangchain.schemaimportHumanMessagefromlangchain_core.messagesimportSystemMessage llm.invoke([SystemMessage(content你是一个图像分析助手),HumanMessage(content[{type:image_url,image_url:{url:https://example.com/chart.png}},{type:text,text:这张图展示的是什么数据趋势}])])本章小结概念关键点LangChain连接 LLM 与外部世界的开发框架ChatOpenAIOpenAI API 的 LangChain 封装PromptTemplate把变量注入 Prompt 的模板系统Few-shot提供示例让 AI 理解任务模式Streaming逐 token 流式输出提升体验多模态支持图片、音频等多种输入类型下一章文档切片与向量化——如何把外部知识变成 AI 能理解的形式。创作者Yardon | 个人网站GlimmerAI.top 本章是「LangChain RAG 实战」系列的第 1 章。 欢迎大家来观看