目录
一,API创建与获取
二,直接进行API的调用
2.1 安装第三方库
2.2 官方支持的接口调用方式
2.3 编写的小tips
2.4 AI助手工具代码
三, 配置方面的说明
3.1 token价格和字符用量
3.2 响应错误码
最近在休息的时候也是一直会刷到关于deepseek,简单使用了一下,发现这个AI和以往使用过的有很大的不同,起码在我看来有了人性,今天突然发现官方开放了API,赶紧来玩一下,通过deepseek今后可以极大的提高开发工具的效率.
一, API创建与获取
API文档官网:
https://platform.deepseek.com/
直接微信扫码登录即可,我是因为电脑登录着微信,直接快捷登录了,首次登录国内用户会有10CNY的额度赠送,当然如果不能注册的话可以挂个梯子微信会改为谷歌登录,用谷歌邮箱登录就可以了,只是没有免费额度,还挺亏的.
接下来点击旁边的API keys
点击创建API keys,会提示输入名称,输入key的名称后点击复制即可
此时点击复制即可,记住如果关闭后,是无法再次看到这个key的
请将此 API key 保存在安全且易于访问的地方。出于安全原因,你将无法通过 API keys 管理界面再次查看它。如果你丟失了这个 key,将需要重新创建。
此时只能,修改key的名称和删除key,无法看到秘钥了
二, 直接进行API的调用
2.1 安装第三方库
可以在命令行,也可以使用pyCharm等进行安装
pip3 install openai
如果用命令行的话,出现Successfully说明安装成功
2.2 官方支持的接口调用方式
这里我比较习惯使用Python,就用个示例简单做个示范,调用起来根据要写的东西,响应回来的时间也会不同,我这个也就半分钟作用
# -*- coding: UTF-8 -*-
from openai import OpenAIclient = OpenAI(api_key="填写自己的key", base_url="https://api.deepseek.com")response = client.chat.completions.create(model="deepseek-reasoner",messages=[{"role": "system", "content": "你是一个GUI工具研发工程师"},{"role": "user", "content": "帮我用Python写一个GUI界面的小助手,并且对接DeepSeek,给合适的提示词,用户会输入它所需要提问的信息,你做出回答,并响应到返回区,""并且响应区的信息进行复制,python的洁面一定要美观科技感,你可以在这个基础上帮我完善一下这个想法,并生成代码"},],stream=False
)print(response.choices[0].message.content)
当然,在这个基础上的代码还是不够完善的,还需要进一步进行提示和自行更改,直到代码符合自己的需求.
2.3 编写的小tips
通过AI编写代码,然后自己手工改进错误,当然,在这个基础上还可以进行进一步的改进.
2.4 AI助手工具代码
# -*- coding: UTF-8 -*-
import tkinter as tk
from tkinter import ttk, scrolledtext, messagebox
import threading
import requests
import json
import clipboardclass DeepSeekAssistant:def __init__(self, root):self.root = rootself.root.title("DeepSeek AI 助手")self.root.geometry("800x600")self.root.configure(bg='#1a1a1a')self.style = ttk.Style()self.style.theme_use('clam')# 自定义颜色方案self.style.configure('TFrame', background='#1a1a1a')self.style.configure('TLabel', background='#1a1a1a', foreground='#00ff99')self.style.configure('TButton', background='#2d2d2d', foreground='white',font=('Helvetica', 10, 'bold'), borderwidth=1)self.style.map('TButton',background=[('active', '#3d3d3d'), ('pressed', '#4d4d4d')])self.create_widgets()self.api_key = "xxxxxxxxxxxxxx你的api秘钥" # 替换为你的API密钥self.api_url = "https://api.deepseek.com/chat/completions"def create_widgets(self):# 头部header_frame = ttk.Frame(self.root)header_frame.pack(pady=10)self.logo_label = ttk.Label(header_frame,text="DeepSeek AI",font=('Arial', 18, 'bold'),foreground='#00ff99')self.logo_label.pack(side=tk.LEFT, padx=10)# 主内容区main_frame = ttk.Frame(self.root)main_frame.pack(fill=tk.BOTH, expand=True, padx=20, pady=10)# 输入区input_frame = ttk.Frame(main_frame)input_frame.pack(fill=tk.X, pady=5)self.input_entry = ttk.Entry(input_frame,font=('Arial', 12),foreground='black',background='#2d2d2d')self.input_entry.pack(side=tk.LEFT, fill=tk.X, expand=True, ipady=5)self.input_entry.bind("<Return>", lambda event: self.send_query())self.send_btn = ttk.Button(input_frame,text="发送",command=self.send_query)self.send_btn.pack(side=tk.LEFT, padx=5)# 响应区self.response_area = scrolledtext.ScrolledText(main_frame,wrap=tk.WORD,font=('Arial', 11),bg='#2d2d2d',fg='white',insertbackground='white')self.response_area.pack(fill=tk.BOTH, expand=True)self.response_area.tag_config('user', foreground='#00ff99')self.response_area.tag_config('assistant', foreground='white')# 右键菜单self.context_menu = tk.Menu(self.root, tearoff=0)self.context_menu.add_command(label="复制", command=self.copy_text)self.response_area.bind("<Button-3>", self.show_context_menu)def show_context_menu(self, event):self.context_menu.tk_popup(event.x_root, event.y_root)def copy_text(self):selected = self.response_area.get(tk.SEL_FIRST, tk.SEL_LAST)if selected:clipboard.copy(selected)def send_query(self):user_input = self.input_entry.get().strip()if not user_input:messagebox.showwarning("输入为空", "请输入您的问题")returnself.input_entry.delete(0, tk.END)self._append_message(f"你:{user_input}\n", 'user')threading.Thread(target=self._get_response, args=(user_input,)).start()def _append_message(self, message, tag):self.response_area.configure(state='normal')self.response_area.insert(tk.END, message, tag)self.response_area.configure(state='disabled')self.response_area.see(tk.END)def _get_response(self, prompt):headers = {"Authorization": f"Bearer {self.api_key}","Content-Type": "application/json"}data = {"model": "deepseek-chat","messages": [{"role": "user", "content": prompt}],"temperature": 0.7}try:response = requests.post(self.api_url, headers=headers, json=data)response.raise_for_status()result = response.json()answer = result['choices'][0]['message']['content']self._update_response_area(f"助手:{answer}\n\n", 'assistant')except Exception as e:error_msg = f"错误:{str(e)}"self._update_response_area(error_msg + "\n\n", 'assistant')def _update_response_area(self, text, tag):self.root.after(0, lambda: self._append_message(text, tag))if __name__ == "__main__":root = tk.Tk()app = DeepSeekAssistant(root)# 设置窗口图标(准备一个ico文件)try:root.iconbitmap('tools.ico') # 需要准备图标文件except:passroot.mainloop()
三, 配置方面的说明
3.1 token价格和字符用量
对于我们开发者或者学生来说,价格决定我们会不会继续使用,简介介绍一下Deepseek API方面
百万token只需要16快,方便使用,而且也不贵