初尝DeepSeek,做个AI客服吧

一、金光闪闪

    未来科技弄潮儿——大模型AI技术。不仅是当前科技发展最前沿,其涵盖机器学习、深度学习、自然语言处理、计算机视觉等等,也是解决人们问题的好帮手。在我看来,当前AI大模型很像人类智慧的集合体,仿佛它是拥有大肚子的饕餮,不断把全世界的书籍、博物馆、知识吞入腹中,贯穿古今,编织未来。

二、开发环境准备

  1. 编程软件 :PyCharm 2023.1.1
  2. 编程语言 :Python 3.8.10
  3. AI模型和API接口 :DeepSeek-V3 (深度求索)

2.1 检查openai版本

    DeepSeek API 使用与 OpenAI 兼容的 API 格式,通过修改配置,您可以使用 OpenAI SDK 来访问 DeepSeek API,或使用与 OpenAI API 兼容的软件。

# 基础性的python知识,不是本文重点,不做讲述
# 在python的控制台输入,检查 Python 环境中安装的 openai 库版本
 pip show openai
# 列出所有已安装的 Python 包及其版本
 pip list
# 版本太低,升级到1.x版本,如下图升级openai到 1.60.0版本
pip install --upgrade openai

在这里插入图片描述


三、DeepSeek-API调用尝试

    首次调用api的官网地址:https://api-docs.deepseek.com/zh-cn/,参照官方文档,我们新建 AItest.py文件,代码如下:

from openai import OpenAI

# 初始化客户端,使用 DeepSeek 的 API 地址和你的 API 密钥
client = OpenAI(api_key="your-deepseek-api-key", base_url="https://api.deepseek.com")

# 调用 API
response = client.chat.completions.create(
    model="deepseek-chat",  # 确认模型名称是否正确
    messages=[
        {"role": "system", "content": "you are a helpful assistant"},
        {"role": "user", "content": "hello"},
    ],
    stream=False  # 确认是否支持 stream 参数
)

# 输出结果(假设响应结构与 OpenAI 相同)
print(response.choices[0].message.content)

     理解上述代码:

  1. 引入openai,调用DeepSeek官方api接口,在DeepSeek官方申领我们的试用api-key;
  2. 告诉AI,他是一个很棒的助手
  3. 我们向AI发送 “hello”的信息,将AI的回答打印出来

在这里插入图片描述
    到这里,我们已经可以调用DeepSeek的api接口,让ai回答问题。更深一步,如何与它进行持续对话,让它保持运行状态,让我们在控制台或者什么界面,可以开展交流?


四、做一个AI客服吧

    一个AI客服,能够保持时时刻刻在线,当你询问它问题时,能给你很棒的回答。让其保持持续的对话状态,尝试修改代码:

from openai import OpenAI

# 初始化 DeepSeek 客户端
client = OpenAI(api_key="your-deepseek-api-key", base_url="https://api.deepseek.com")

# 初始化对话历史
messages = [
    {"role": "system", "content": "首先明确你自己是一个机器助手,你的名字叫做AI童子"}
]

# 持续对话循环
while True:
    # 获取用户输入
    user_input = input("You: ")
    
    # 如果用户输入 "exit",退出对话
    if user_input.lower() in ["exit", "quit"]:
        print("Goodbye!")
        break
    
    # 将用户输入添加到对话历史
    messages.append({"role": "user", "content": user_input})
    
    # 调用 DeepSeek API
    try:
        response = client.chat.completions.create(
            model="deepseek-chat",  # 替换为 DeepSeek 支持的模型名称
            messages=messages,
            stream=False  # 如果需要流式响应,可以设置为 True
        )
        
        # 获取 AI 回复
        ai_response = response.choices[0].message.content
        
        # 打印 AI 回复
        print(f"AI: {ai_response}")
        
        # 将 AI 回复添加到对话历史
        messages.append({"role": "assistant", "content": ai_response})
    
    except Exception as e:
        print(f"An error occurred: {e}")

运行效果:
在这里插入图片描述


4.1、让AI客服界面更加美观

    控制台这个界面对话不好看,再次改造为弹窗对话,使界面更加人性化。我们给这个AI客服取一个新的名字 "deepseek的孩子,东方AI童子"吧!再次修改代码,如下:

import tkinter as tk
from tkinter import scrolledtext
from openai import OpenAI

# 初始化 DeepSeek 客户端
client = OpenAI(api_key="your-deepseek-api-key", base_url="https://api.deepseek.com")

# 初始化对话历史
messages = [
    {"role": "system", "content": "记住你的名字叫做东方AI童子"}
]

# 发送消息给 AI 并获取流式回复
def send_message():
    # 获取用户输入
    user_input = input_box.get("1.0", tk.END).strip()
    if not user_input:
        return

    # 清空输入框
    input_box.delete("1.0", tk.END)

    # 将用户输入添加到对话历史
    messages.append({"role": "user", "content": user_input})

    # 在显示框中显示用户输入
    chat_history.config(state=tk.NORMAL)
    chat_history.insert(tk.END, f"cll: {user_input}\n", "user")
    chat_history.config(state=tk.DISABLED)

    # 调用 DeepSeek API 获取流式回复
    try:
        stream_response = client.chat.completions.create(
            model="deepseek-chat",
            messages=messages,
            stream=True  # 启用流式响应
        )

        # 初始化 AI 回复内容
        ai_response = ""

        # 遍历流式响应的每个 chunk
        for chunk in stream_response:
            if chunk.choices and chunk.choices[0].delta.content:
                # 获取当前 chunk 的内容
                chunk_content = chunk.choices[0].delta.content
                ai_response += chunk_content

                # 在显示框中实时更新 AI 回复
                chat_history.config(state=tk.NORMAL)
                chat_history.insert(tk.END, chunk_content, "ai")
                chat_history.config(state=tk.DISABLED)

                # 自动滚动到最新消息
                chat_history.yview(tk.END)
                chat_window.update()  # 实时更新界面

        # 将完整的 AI 回复添加到对话历史
        messages.append({"role": "assistant", "content": ai_response})

    except Exception as e:
        # 显示错误信息
        chat_history.config(state=tk.NORMAL)
        chat_history.insert(tk.END, f"Error: {str(e)}\n", "error")
        chat_history.config(state=tk.DISABLED)

    # 自动滚动到最新消息
    chat_history.yview(tk.END)


# 创建主窗口
root = tk.Tk()
root.withdraw()  # 隐藏主窗口

# 创建弹窗式聊天窗口
chat_window = tk.Toplevel(root)
chat_window.title("deepseek的孩子,东方AI童子,来自CLL")

# 设置窗口大小和位置
chat_window.geometry("400x500+500+200")  # 宽度x高度+水平偏移+垂直偏移

# 创建显示框(用于显示聊天记录)
chat_history = scrolledtext.ScrolledText(chat_window, wrap=tk.WORD, state=tk.DISABLED)
chat_history.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)

# 设置不同消息的样式
chat_history.tag_config("user", foreground="blue")
chat_history.tag_config("ai", foreground="green")
chat_history.tag_config("error", foreground="red")

# 创建输入框
input_box = tk.Text(chat_window, height=3, wrap=tk.WORD)
input_box.pack(padx=10, pady=10, fill=tk.X)

# 创建发送按钮
send_button = tk.Button(chat_window, text="Send", command=send_message)
send_button.pack(pady=10)

# 运行主循环
chat_window.mainloop()

运行效果:
在这里插入图片描述
到这一步,实现了创建自己的AI对话框-AI客服!

    把这个对话框嵌入到网页里面、或者包装成接口以供其他人调用,就做出自己的产品 - 东方AI童子客服(laugh 内部调用的deepseek公司的大模型语言接口)

PS:当前只是AI运用的基础部分,大模型数据预处理、AI训练和算法,深度学习模型才是核心。让我们怀着欲穷千里目,更上一层楼的心态,从AI应用开始逐步进入AI的世界。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值