构造大模型实例

📅 2026/7/22 11:18:52
构造大模型实例
在构造大模型实例之前要先添加下面的导包语句表示引入LangChain的大模型工具OllamaLLMfrom langchain_ollama import OllamaLLM在OllamaLLM的构造方法中model参数是必填的要指定当前引用的大模型名称如下连接本地离线大模型Ollamallm OllamaLLM(model“qwen2:1.5b”)除了model参数以外OllamaLLM还提供了多个可选参数帮助开发者定制个性化的大模型调用需求。其中常用的核心参数说明如下model: 模型名称比如“qwen:7b”、“llama3”、“deepseek-r1等等。base_url: 服务地址默认的本地地址为http://localhost:11434”。temperature: 模型温度即随机性。取值范围0~1默认0.8值越低则越严谨越确定值越高越跳跃越创意。num_ctx: 上下文Token的最大数量默认2048。值越大则能记忆越长的对话内容。num_predict: 回答内容Token的最大数量默认128。值为-1表示不限制输出长度值为-2表示填满上下文跟上下文的Token数一致。keep_alive: 模型常驻内存的时长频繁调用必开默认5m表示5分钟。值为-1表示永久常驻值为0表示用完即关。validate_model_on_init: 初始化时是否校验模型存在与否默认True表示启动程序时检查模型是否存在。比如下面代码构造了一个定制各种参数的大模型实例llm OllamaLLM(model“qwen2:1.5b”,base_url“http://localhost:11434”,temperature0.7,num_ctx4096,num_predict1024,keep_alive“-1”,validate_model_on_initTrue)二、构建提示词模板在构建提示词模板之前要先添加下面的导包语句表示引入LangChain的提示模板工具PromptTemplatefrom langchain_core.prompts import PromptTemplatePromptTemplate的from_template方法主要输入字符串形式的模板参数字符串的开头为提示词内容末尾为“{input}”表示给输入的问题文字占个位子。比如下面代码构建了一个提示词模板prompt PromptTemplate.from_template(“”你是专业助手请简洁回答{input}“”)可见上面模板的提示词内容为“你是专业助手请简洁回答”这便告诉大模型回答时要简明扼要不要啰哩叭嗦。同时后面的“{input}”提前在模板中占个位置后续将把用户输入的问题替换掉这个占位符。三、组装 AI 执行链为什么LangChain一定要组装执行链呢想想看按照程序设计的顺序控制流程每次接口调用都经历了三个步骤封装请求内容→执行接口调用→解析应答内容如同下面的顺序调用代码无链 → 手写每一步巨繁琐prompt_text prompt.format(input“你的问题”) # 1 手动拼模板response llm.invoke(prompt_text) # 2 手动调模型result parser.parse(response) # 3 手动解析可见这个接口调用流程被分解成了三行代码有点繁琐。虽然上一行代码的输出参数就是下一行代码的输入参数但也不得不分成三个语句依次调用。于是LangChain引入了执行链的概念把“构建提示词、调用模型、记忆可选、检索可选、解析应答”等操作按顺序串成一条自动流水线只要一次性启动组装好的执行链LangChain就自动跑完全流程无需拆成多条语句来调用。在组装执行链之前要先添加下面的导包语句表示引入LangChain的执行链工具RunnableSequence以及默认的应答内容解析器StrOutputParserfrom langchain_core.runnables import RunnableSequencefrom langchain_core.output_parsers import StrOutputParser然后编写下面代码串起“构建提示词、调用模型、解析应答”这三个操作chain RunnableSequence(prompt| llm| StrOutputParser())为了方便起见可省略掉构造方法的工具名称RunnableSequence简化代码如下chain (prompt| llm| StrOutputParser())还能进一步省略掉外围的圆括号变成如下的一行代码chain prompt | llm | StrOutputParser()这下清爽多了完全去掉了组装过程中的各种方法调用及其输入输出参数只留下各环节用到的实例名称极大地简化了代码篇幅。四、通过执行链调用离线大模型接下来结合构造大模型实例、构建提示词模板、组装 AI 执行链等三个步骤通过执行链调用实现离线大模型的快速问答功能。在编写Python代码前要先在命令行执行下面的pip安装命令pip install langchain langchain-core langchain-ollama接着在命令行窗口执行下面命令以便启动Ollama并加载离线大模型ollama serve然后编写下面的Python聊天测试代码由用户在控制台输入问题来实现聊天交互from langchain_core.prompts import PromptTemplatefrom langchain_core.output_parsers import StrOutputParserfrom langchain_ollama import OllamaLLMdef main():# 1. 连接本地Ollama离线模型替换成你本地模型名llm OllamaLLM(model“qwen2:1.5b”,base_url“http://127.0.0.1:11434”,temperature0.7 # 随机性 0严谨~1创意)# 2. 构建对话模板 prompt PromptTemplate.from_template( 你是专业助手请简洁回答 {input} ) # 3. 组装执行链 chain prompt | llm | StrOutputParser() # 4. 循环问答聊天 print( 离线AI聊天助手输入exit退出) while True: user_text input(请输入问题) if user_text.lower() in [exit, quit, 退出]: print(对话结束) break print(AI思考中...) response chain.invoke(user_text) print(fAI回复{response}\n)ifname “main”:main()运行上面的Python代码根据提示输入问题内容“LangChain是什么”输出日志结果如下