零基础玩转Qwen3-1.7B:手把手教你用LangChain搭建智能对话机器人
零基础玩转Qwen3-1.7B:手把手教你用LangChain搭建智能对话机器人
你是不是也想拥有一个自己的AI助手,能帮你回答问题、写写文案,甚至陪你聊天?但一看到动辄几十GB的模型、复杂的部署流程,就觉得头大,感觉这玩意儿离自己太远了。
今天,我就带你彻底打破这个门槛。咱们不用懂复杂的深度学习,也不用准备昂贵的显卡,就用一个只有17亿参数的“小”模型——Qwen3-1.7B,再配上超级好用的LangChain框架,从零开始,一步步搭建一个属于你自己的智能对话机器人。
整个过程就像搭积木一样简单,你只需要会一点基础的Python,跟着我做,半小时内就能看到你的AI机器人开口说话。准备好了吗?咱们这就开始。
1. 准备工作:认识你的新伙伴Qwen3-1.7B
在开始动手之前,我们先花两分钟了解一下今天的主角。你可能会想,现在动不动就是几百亿、几千亿参数的大模型,这个17亿参数的“小家伙”能行吗?
答案是:对于绝大多数日常对话和任务,它不仅能行,而且非常出色。Qwen3-1.7B是阿里巴巴通义千问家族的最新成员,虽然身材小巧,但本事不小。
它有几个特别适合我们新手玩家的优点:
- 吃得少,干得多:经过优化,它只需要很少的计算资源就能跑起来,普通电脑也能尝试。
- 记得长:支持长达32K的上下文,意味着它能记住和你很长一段对话内容,聊天不会前言不搭后语。
- 双模式大脑:这是它最酷的功能之一。遇到简单问题(比如“今天天气怎么样”),它用“快速模式”秒回;遇到复杂问题(比如“帮我解释一下相对论”),它能切换到“思考模式”,像人一样先在心里推理一番,再给出更靠谱的答案。
简单来说,Qwen3-1.7B就是一个为实际应用而生的、高性价比的AI引擎。而我们接下来要用的LangChain,就像一套乐高积木,能让我们用简单的代码,把这个引擎组装成各种有用的工具,比如聊天机器人。
2. 环境搭建:十分钟搞定一切
理论说再多不如动手试一下。我们现在就来把环境准备好。别担心,我已经把最麻烦的部分都打包好了,你只需要点几下。
2.1 一键启动,告别复杂配置
我们使用一个预置好的环境镜像,里面Python、必要的库都已经装好了,你开箱即用。
- 找到并启动镜像:在你使用的平台(例如CSDN星图镜像广场)搜索“Qwen3-1.7B”镜像。
- 点击启动:找到后,直接点击“启动”或类似的按钮。系统会自动为你创建一个包含这个镜像的实例。
- 打开Jupyter Lab:实例启动成功后,通常会有一个链接或按钮直接打开Jupyter Lab。这是一个网页版的编程环境,我们后续所有操作都在这里进行。
当你看到类似下图的界面时,恭喜你,最复杂的环境配置已经完成了!
2.2 安装核心工具包
在Jupyter Lab里,我们新建一个Python笔记本(Notebook)。然后在第一个代码单元格里,输入以下命令来安装我们唯一需要的一个额外工具包:langchain-openai。
# 在Jupyter Notebook的第一个单元格中执行 !pip install langchain-openai -q-q参数是为了让安装过程安静一些,不输出太多信息。执行这个单元格(按Shift+Enter),稍等片刻,看到安装成功的提示即可。
好了,环境搭建完毕!是不是比想象中简单?接下来就是最激动人心的部分——让我们召唤AI。
3. 核心实战:让你的第一个AI机器人“活”起来
现在,我们写一个非常简单的程序,来连接并调用Qwen3-1.7B模型。把下面的代码复制到新的代码单元格里。
# 导入必要的工具 from langchain_openai import ChatOpenAI import os # 创建并配置你的AI机器人核心 chat_model = ChatOpenAI( model="Qwen3-1.7B", # 指定使用Qwen3-1.7B模型 temperature=0.5, # 控制创造力的“温度”,0.1-1.0之间,越高回答越随机有趣 base_url="https://gpu-pod69523bb78b8ef44ff14daa57-8000.web.gpu.csdn.net/v1", # 注意:这个地址需要替换! api_key="EMPTY", # 因为我们用的是本地/镜像服务,所以API Key填EMPTY extra_body={ "enable_thinking": True, # 开启“思考模式”,让模型处理复杂问题时先推理 "return_reasoning": True, # 要求返回推理过程,方便我们看它是怎么想的 }, streaming=True, # 开启流式输出,回答会一个字一个字显示,更有对话感 ) # 向你的AI机器人问好 response = chat_model.invoke("你是谁?") print(response.content)重要提示:上面代码中的base_url是一个示例地址,你不能直接使用。你需要把它换成你自己实例的真实地址。
怎么找这个地址呢?很简单:
- 回到你启动Jupyter Lab的那个页面。
- 找到你的实例访问地址,通常格式是
https://gpu-pod[一串ID]-8000.web.gpu.csdn.net。 - 在这个地址后面加上
/v1,然后替换掉代码里的base_url部分。
替换好后,运行这个单元格。稍等几秒钟,你应该就能看到模型的自我介绍了!它可能会说:“我是通义千问,一个由阿里云开发的大语言模型……” 这意味着你的AI机器人已经成功启动,并且能和你对话了。
4. 功能探索:和你的AI机器人深度对话
基础对话成功了,我们来玩点更高级的,体验一下Qwen3-1.7B的“双模式”大脑和长上下文能力。
4.1 体验“思考模式”的魅力
还记得我们创建chat_model时设置的"enable_thinking": True吗?这就是打开了它的“思考模式”。让我们问一个需要逻辑推理的问题,看看它内部是怎么工作的。
# 问一个需要推理的问题 question = "如果小明比小红高,小红比小刚高,那么小明和小刚谁高?" response = chat_model.invoke(question) print("【AI的思考过程】:") # 尝试提取并打印推理过程(如果模型返回了的话) if hasattr(response, 'response_metadata') and 'reasoning' in response.response_metadata: print(response.response_metadata['reasoning']) else: print("(本次响应未包含显式推理内容)") print("\n【AI的最终答案】:") print(response.content)运行后,你可能会在答案前看到一段用特殊符号(如<|im_start|>reasoning...<|im_end|>)包裹的文字,那就是模型“心里”的推理步骤。它先梳理条件“小明>小红,小红>小刚”,然后得出结论“小明>小刚”。这个功能对于理解复杂问题的解答逻辑非常有帮助。
4.2 关闭思考,体验极速响应
对于“今天天气怎么样?”、“帮我写个会议通知”这类简单问题,我们不需要它思考,只想要快。这时我们可以临时关闭思考模式。
# 方法一:创建另一个不开启思考的聊天对象(适合长期使用) fast_chat_model = ChatOpenAI( model="Qwen3-1.7B", temperature=0.5, base_url="你的_base_url_地址/v1", # 记得替换 api_key="EMPTY", extra_body={ "enable_thinking": False, # 关键:关闭思考模式 }, streaming=True, ) # 问一个简单问题 fast_response = fast_chat_model.invoke("用一句话介绍北京。") print(fast_response.content)你会发现,对于这种简单任务,响应速度会更快。你可以根据任务类型,灵活选择使用chat_model(思考模式)还是fast_chat_model(快速模式)。
4.3 进行多轮对话(记忆测试)
一个好的聊天机器人得能记住之前说过什么。LangChain 帮我们管理对话历史。我们来模拟一个简单的多轮对话。
from langchain_core.messages import HumanMessage, AIMessage # 初始化一个对话历史列表 messages = [ HumanMessage(content="我的名字叫王伟。"), ] # 第一轮:告诉AI你的名字 first_response = chat_model.invoke(messages) print("AI:", first_response.content) messages.append(AIMessage(content=first_response.content)) # 把AI回复加入历史 # 第二轮:问它记不记得 messages.append(HumanMessage(content="你还记得我叫什么名字吗?")) second_response = chat_model.invoke(messages) print("AI:", second_response.content)运行这段代码,AI在第二轮回答时,应该能说出“王伟”。这说明它成功记住了上下文。你可以继续在messages列表里添加对话,进行更长的聊天。
5. 打造实用小应用:一个简易问答助手
光聊天不过瘾,我们用它来做个有点实用价值的小东西:一个简单的领域知识问答助手。假设我们想做一个关于“咖啡”的问答机器人。
思路是:我们预先给它一点关于咖啡的“知识”,然后让它基于这些知识来回答。这里用到LangChain一个简单的“提示模板”功能。
from langchain_core.prompts import ChatPromptTemplate # 1. 定义一段关于咖啡的“知识” coffee_knowledge = """ 咖啡是一种由烘焙过的咖啡豆制成的饮料。 常见的咖啡种类有意式浓缩、美式咖啡、拿铁、卡布奇诺。 拿铁是由意式浓缩咖啡和蒸汽牛奶混合而成,上面有一层奶泡。 咖啡豆主要产自拉丁美洲、非洲和亚洲。 适量饮用咖啡可能有助于提神醒脑。 """ # 2. 创建一个提示词模板,告诉AI如何利用这些知识 prompt_template = ChatPromptTemplate.from_messages([ ("system", "你是一个专业的咖啡师助手。请根据以下已知信息来回答问题。如果信息不足以回答问题,请如实说不知道。\n已知信息:{knowledge}"), ("human", "{question}"), ]) # 3. 将我们的咖啡知识填入模板,形成一个具体的提示 prompt = prompt_template.invoke({ "knowledge": coffee_knowledge, "question": "拿铁咖啡是怎么做的?" }) # 4. 将组装好的提示发送给AI response = chat_model.invoke(prompt) print(response.content)运行后,AI应该能根据我们提供的知识,准确地回答出拿铁是由意式浓缩咖啡和蒸汽牛奶混合而成的。你可以修改question的内容,问它“咖啡豆产自哪里?”或者“美式咖啡是什么?”,看看它的回答。
这个例子虽然简单,但这就是构建专业领域智能助手的基础。你可以把coffee_knowledge替换成任何你想要的文档、手册、FAQ,快速打造一个专属知识库问答机器人。
6. 总结与下一步
跟着走完以上步骤,你已经完成了从零到一的跨越:
- 理解了Qwen3-1.7B:一个轻量但能力强,且具备“思考模式”的实用模型。
- 搭建了环境:利用预置镜像,免去了繁琐的安装配置。
- 完成了核心连接:使用LangChain的
ChatOpenAI,成功调用了模型。 - 探索了关键功能:体验了思考模式、快速模式和对话记忆。
- 实现了一个小应用:创建了一个基于给定知识的简易问答助手。
你的智能对话机器人已经成功“上岗”了!
接下来可以玩什么?
- 美化对话界面:现在的对话是在代码里打印出来的。你可以学习使用
Gradio或Streamlit这两个Python库,花几行代码就能做出一个漂亮的网页聊天界面。 - 连接真实知识库:上面的咖啡知识是手写的。你可以学习LangChain的
RAG(检索增强生成)技术,让它能读取你的PDF、Word文档或网站内容,回答更复杂的问题。 - 赋予它工具能力:让AI不仅能说,还能做。比如,教会它调用一个查询天气的API,这样当你问“北京天气如何?”时,它能自己去查并告诉你结果。
Qwen3-1.7B和LangChain这个组合,就像给你了一套强大又易用的AI工具箱。今天你学会了最基础的用法,已经可以做出很多有趣的东西了。剩下的,就是发挥你的想象力,去创造、去解决实际问题。
最重要的是,你亲手证明了,玩转AI,没那么难。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
