0基础进大厂,第9天:LLM 入门篇——与AI的多轮对话

207 阅读2分钟

引言

从这篇文章开始,作者即将开启一个新系列文章——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": "换成你的问题"}即可

image.png

如果选择的是推理模型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)

第一步,成功迈出!

image.png

开启有记忆的第二轮对话

凡事先看官方文档多轮对话 | 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)

总结:

代码很容易看懂,不要拘泥于细节写不出来,后面写多了都会掌握的,作为入门,只需要大概知道与大模型对话是怎么一回事,有哪些步骤,如此,即可