你好,我是方可乐。
一个正在深耕AI编程的30+的AI应用开发工程师。
用AI编程开发过Web应用网站,浏览器插件,微信小程序,AI智能体,RAG系统。
关注公众号&添加微信:ThinkFun666
领取【AI编程资料包】
去年6月份,我做了一个连自己都觉得疯狂的决定:裸辞,All in AI。
现在已经换赛道成功,继续在工作中探索。
今天我们来聊聊,用langchain调用大模型,如何持续实时交互。
昨天我们跑通了第一次调用,输出就像“演示版”,一问一答,但一次性结束。今天,我们来进行连续的对话。
就像我们平时用豆包或者DeepSeek这些AI 聊天一样,持续提问,随问随答。
在昨天原来的目录上,我们新建两个文件。老规矩,一个原生版本,一个langchain版本。
原生版本,新建文件02_talk_with_deepseek.py
from openai import OpenAI
from dotenv import load_dotenv
import os
# 加载环境变量
load_dotenv()
client = OpenAI(
api_key=os.getenv("deepseek_api_key"),
base_url="https://api.deepseek.com"
)
print("=== 欢迎进入 AI 命令行聊天 ===")
print("输入 'exit' 退出聊天")
# 初始化对话历史,只包含系统消息
messages = [
{"role": "system", "content": "你是一个聪明的 AI 助手,会回答用户的问题。"}
]
while True:
user_input = input("\n你:")
if user_input.lower() == "exit":
print("聊天结束,再见!")
break
# 添加用户消息到对话历史
messages.append({"role": "user", "content": user_input})
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
stream=False
)
answer = response.choices[0].message.content
# 添加AI回复到对话历史
messages.append({"role": "assistant", "content": answer})
print(f"AI:{answer}")
langchain版本,新建文件02_talk_with_deepseek_langchain.py
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage
from dotenv import load_dotenv
import os
# 加载 .env 文件
load_dotenv()
# 初始化 LangChain LLM
llm = ChatOpenAI(
api_key=os.getenv("deepseek_api_key"),
base_url="https://api.deepseek.com/v1",
model="deepseek-chat",
temperature=0.7
)
print("=== 欢迎进入 LangChain AI 命令行聊天 ===")
print("输入 'exit' 退出聊天")
# 初始化对话历史,只包含系统消息
messages = [
SystemMessage(content="你是一个聪明的 AI 助手,会回答用户的问题。")
]
while True:
user_input = input("\n你:")
if user_input.lower() == "exit":
print("聊天结束,再见!")
break
# 添加用户消息到对话历史
messages.append(HumanMessage(content=user_input))
response = llm.invoke(messages)
# 添加AI回复到对话历史
messages.append(response)
print(f"AI:{response.content}")
我们使用while True来激活一个循环,然后通过input("\n你:")来进行连续的输入。
通过在循环中持续填入增量的历史消息到message对象后调用大模型,并且打印大模型的回复,来达到持续交互的目的。
Langchain中使用 messages.append(HumanMessage(content=user_input)),用HumanMessage对象来包装用户输入,看起来更加整洁。
当我们的代码复杂后,有更高的可读性。
对AI应用开发感兴趣的同学,欢迎加微信申请入群交流学习。
想要学习AI应用开发的同学,可以参照我的代码跑起来,举一反三,一天一个脚印的进步,我相信,会足够坚实。
接下来100天,我会记录从Java程序员到AI应用开发工程师的完整转型路:每一个困惑、每一次突破、每一个真实瞬间。
当前是21/100。
如果你也想了解AI应用开发到底是什么,如果你也在考虑转型但还在犹豫,
那就跟着我的记录,一起探索。
继续折腾中,有问题随时交流 🤝
微信号:ThinkFun666
我的免费AI编程交流群,欢迎加入讨论AI编程玩法(加我微信,说明需求和来意,申请入群)
不懂编程的小白,如何入门AI编程和商业化?
如何系统地掌握这些方法?如何找到有价值的商业化方向?如何在遇到瓶颈时获得启发和帮助?
如果你也对AI编程充满热情,渴望用AI创造出属于自己的应用并探索商业化机会;如果你想提升在AI时代的核心竞争力,让AI成为你事业的加速器。
那么,我非常推荐你加入“AI编程复利商业化星球”!
在这个社群,你将获得:
9次价值千元的AI编程死磕实战训练营
超级大佬的实战经验分享,商业化思路,前沿AI工具和技巧
和一群积极的AI编程同行者共舞
让我们一起,用AI编程,不仅创造工具,更创造价值,实现个人和商业上的持续“进化”与“复利”!
推荐阅读:
我就喜欢干这种傻事!为什么转型AI应用开发,我不建议你直接从看书开始学起?

