引言
从这篇文章开始,作者即将开启一个新系列文章——AI篇,我将从最基本的AI概念开始说起到AIGC,AIGC是终点吗?当然不是,学无止境...
LLM
LLM(Large Language Model,大型语言模型)是一种基于深度学习技术的人工智能模型,通过海量文本数据的训练,实现对自然语言的理解与生成
在这个领域,已经有很多优秀的大模型涌现,比如:DeepSeek-R1、Claude 4.0、ChatGpt-4o等等
开启和LLM的第一轮对话
为了方便演示,这里选用DeepSeek
接下来,我们需要做以下工作:
- 进入DeepSeek开放平台,注册并进行充值
- 创建API key,记得保存密钥
- 查看deep seek接口文档(点击跳转):首次调用 API | DeepSeek API Docs
- 在终端输入 pip3 install openai
- 这里可以看到官方提供的一个简单案例,只需要将
<DeepSeek API Key>换成自己的密钥,{"role": "user", "content": "换成你的问题"}即可
如果选择的是推理模型deepseek-reasoner,可以打印出大模型的思考过程
from openai import OpenAI
client = OpenAI(
api_key=os.getenv('DEEPSEEK_API_KEY'),
base_url='https://api.deepseek.com/v1'
)
completion = client.chat.completions.create(
model = "deepseek-reasoner",
messages=[
{'role':'system','content':'你是一个数学老师,请你回答今年高考数学相关问题'},
{'role':'user','content':'客观评价今年高考数学的难度如何'},
]
)
print('思考过程')
print(completion.choices[0].message.reasoning_content)
print('回答')
print(completion.choices[0].message.content)
第一步,成功迈出!
开启有记忆的第二轮对话
凡事先看官方文档:多轮对话 | DeepSeek API Docs
官方源码:
简单解释一下:把第一轮问答的回复添加到messages里,再带着新的问题,一起发给大模型,这样的大模型就有记忆了,就是如此朴实无华
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# Round 1
messages = [{"role": "user", "content": "What's the highest mountain in the world?"}]
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
messages.append(response.choices[0].message)
print(f"Messages Round 1: {messages}")
# Round 2
messages.append({"role": "user", "content": "What is the second?"})
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
messages.append(response.choices[0].message)
print(f"Messages Round 2: {messages}")
代码就自己去跑一下就行了,任务就留给你了
如何开启有记忆的无限对话?
这个时候,就肯定要想到循环了
我相信,你肯定想到了,就是循环把每一轮的对话信息,添加进messages,一并发给 LLM
不难理解,页不难写,代码如下:
from openai import OpenAI
client = OpenAI(
api_key=os.getenv('DEEPSEEK_API_KEY'),
base_url='https://api.deepseek.com/v1'
)
def seed_message(message):
response = client.chat.completions.create(
model='deepseek-reasoner',
messages=message,
)
return response
if __name__ == '__main__':
messages = []
while 1 :
question = input('请输入问题:')
if question == 'exit':
break
messages.append({'role': 'user', 'content': question})
response = seed_message(messages)
message = response.choices[0].message
messages.append(
{
'role': message.role,
'content': message.content
}
)
print('思考过程:')
print(message.reasoning_content)
print('回答:')
print(message.content)
总结:
代码很容易看懂,不要拘泥于细节写不出来,后面写多了都会掌握的,作为入门,只需要大概知道与大模型对话是怎么一回事,有哪些步骤,如此,即可