你好,我是方可乐。
一个正在深耕AI编程的30+的AI应用开发工程师。
实战过多个AI应用开发框架,自主开发过多个AI应用产品
今天开启AI应用开发技术分享的第一篇内容——开始你的第一次langchain调用大模型。
语言这块我们选择python,用来学习的api,选择deepseek。(自行去DeepSeek官网购买api额度和获取密钥)
然后我们准备下三个代码文件。
第一个文件,我们命名为**.env **,它是一个专门存环境变量的文件,我们主要存DeepSeek的API key,不要写在业务代码中,防止泄露
deepseek_api_key=xxxxxxxxxxxxxxxxxxx
第二个文件,我们命名为 01_call_deepseek.py,这是deepseek提供的原生调用案例,我们稍微改动了下,使用读取环境变量的方式,获得deepseek_api_key。
调用大模型,主要是使用openai库,已经封装好了,我们按照格式填入参数就行。
从代码中我们可以看到,我们调用大模型,需要传入两个关键内容:
-
- 系统角色提示词
-
- 用户提问提示词
格式是固定的,我们自己DIY用户的content就行。
from openai import OpenAIimport osfrom dotenv import load_dotenvload_dotenv()client = OpenAI(api_key=os.getenv("deepseek_api_key"), base_url="https://api.deepseek.com")response = client.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "你是一个AI助手,你会回答用户的问题"}, {"role": "user", "content": "你好"}, ], stream=False)print(response.choices[0].message.content)
第二个文件,我们命名为01_call_deepseek_langchain.py,这里调用大模型,不是用openai的库,而是经过langchain封装的langchain_openai库。
写法分三块:
-
- 大模型调用参数组装(llm = ChatOpenAI(...))
-
- 调用提示词组装(SystemMessage、HumanMessage)
-
- 调用大模型的函数(llm.invoke)
from langchain_openai import ChatOpenAIfrom langchain.schema import HumanMessage, SystemMessageimport osfrom dotenv import load_dotenvload_dotenv()# 使用LangChain的ChatOpenAI类调用DeepSeekllm = ChatOpenAI( api_key=os.getenv("deepseek_api_key"), base_url="https://api.deepseek.com/v1", model="deepseek-chat", temperature=0.7)# 创建消息messages = [ SystemMessage(content="你是一个AI助手,你会回答用户的问题"), HumanMessage(content="你好")]# 调用模型response = llm.invoke(messages)print(response.content)
下面是两种方式的调用结果,可以看到,内容返回几乎是一样的,两种方式都成功调通了。
这里我用的工具是Trae,感兴趣又不知道怎么开始上手的同学,可以借助这类AI编程工具,让AI辅助生成代码,并且帮助我们运行起来。
先把代码跑起来,再反过来思考为什么,举一反三,这样学习是最快的。
对AI应用开发感兴趣的同学,欢迎加微信申请入群交流学习。
想要学习AI应用开发的同学,可以参照我的代码跑起来,举一反三,一天一个脚印的进步,我相信,会足够坚实。
如果你也想了解AI应用开发到底是什么,如果你也在考虑转型但还在犹豫,
那就跟着我的记录,一起探索。
继续折腾中,有问题随时交流 🤝
微信号:ThinkFun666