若你对智能对话体验充满期待,想要迅速踏上这趟旅程,那么掌握并使用 API 密钥无疑是最重要的起始环节。下面,我会逐一为你讲解。
注册账号
要获取API密钥,得先注册一个账户。注册时,得在平台指定的注册页面,按照提示填写个人信息,诸如姓名、电子邮箱等,接着完成注册过程。注册成功后,您将获得登录账户的权限,这是获取API密钥的第一步。只有拥有了账户,才能进行接下来的操作。
众多开发者群体中,只要成功注册账号,就等于向获取API Key迈进了一步。这让他们内心激动不已,因为新的工具探索之旅即将展开,眼前正有许多新的可能性等待我们去逐一探索。
创建 API Key
import os
api_key = "your_api_key_here" # 替换为您的API Key
os.environ["DEEPSEEK_API_KEY"] = api_key
进入平台后,找到生成API密钥的页面,点击“生成API密钥”按钮。然后,给它设定一个名称,这个名称可以根据个人喜好来定,比如用项目名,这样做有助于之后识别。
export DEEPSEEK_API_KEY="your_api_key_here"
轻点“创建”按键,系统即刻自动生成一个独一无二的API Key。然而,务必留意,此Key仅此一次显现,因此务必要妥善保管。若不小心遗失,唯有重新启动创建过程。不少开发者因疏忽大意而丢失Key,不得不重新经历整个过程,这无疑会耗费大量宝贵时间。
保存 API Key
为确保API密钥的保密性,我们不鼓励将其直接嵌入到代码中。相反,我们应当将其保存在环境变量里。在Python的开发过程中,我们可以通过编写专门的脚本,来设置这些环境变量。
from openai import OpenAI
# 初始化OpenAI客户端
client = OpenAI(api_key=os.environ["DEEPSEEK_API_KEY"], base_url="https://api.deepseek.com")
# 创建对话消息
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
# 调用API
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
stream=False
)
# 输出AI回复
print("AI回复:", response.choices[0].message.content)
在 Linux 或者 Mac 操作系统中,您可以通过命令行来执行一些特定的指令以完成设置和配置。这样一来,在编写代码的过程中,您就可以使用这些方法来获取 API 密钥。这种存储方式对于保障安全具有重要作用,能够显著减少许多潜在的安全隐患,因此请大家务必给予关注。
调用 API
获得API的密钥后,我们便可以借助编程技术来访问API接口。这里提供了一个示例代码,其中参数的设置尤为关键。在选取model参数时,务必挑选合适的模型,例如,可以通过选择“-chat”选项来明确指定使用-V3版本的模型。
messages参数指的是一个列表,其中汇集了系统传递的资讯以及用户发出的信息。这些系统资讯对AI角色的行为产生影响,而用户资讯则是用户真实输入的内容。借助API的调用,我们能够获取到包含AI回复的反馈。代码运行结束后,我们便可以与AI进行对话。
from openai import OpenAI
# 初始化OpenAI客户端
client = OpenAI(api_key=os.environ["DEEPSEEK_API_KEY"], base_url="https://api.deepseek.com")
# 初始化对话消息列表
messages = [
{"role": "system", "content": "You are a helpful assistant."}
]
while True:
# 获取用户输入
user_input = input("请输入对话:\n")
messages.append({"role": "user", "content": user_input})
# 调用API
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
stream=True
)
# 输出AI回复
print("AI回复:")
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print()
多轮对话实现
考虑到 /chat/ API 具备“无状态”特性,若要实现多轮交流,我们可以采用 while 循环的方式。每当用户发送一条信息,我们就将其记录在列表中,然后调用 API。
使用 stream=True 这一选项,我们能够逐行查看AI的回应,并且能够实时地呈现出来,让人仿佛真的在与一个真人进行对话。在真正的开发过程中,这种来回交流的情况相当常见,极大地增强了用户的交流体验。
接入微信平台
version: '2.0'
services:
chatgpt-on-wechat:
image: registry.cn-guangzhou.aliyuncs.com/kangarooking/chatgpt-on-wechat:250131
container_name: chatgpt-on-wechat
security_opt:
- seccomp:unconfined
environment:
OPEN_AI_API_KEY: 'your_api_key_here' # 替换为您的DeepSeek API Key
OPEN_AI_API_BASE: 'https://api.deepseek.com/v1'
MODEL: 'deepseek-chat'
SINGLE_CHAT_PREFIX: '[""]'
SINGLE_CHAT_REPLY_PREFIX: '" "'
GROUP_CHAT_PREFIX: '["@your_wechat_name"]' # 替换为您的微信名
GROUP_NAME_WHITE_LIST: '["测试1群", "测试2群"]'
IMAGE_CREATE_PREFIX: '["画", "看", "找"]'
CONVERSATION_MAX_TOKENS: 3000
SPEECH_RECOGNITION: 'False'
CHARACTER_DESC: '用猫娘的语气跟我说话'
EXPIRES_IN_SECONDS: 3600
USE_GLOBAL_PLUGIN_CONFIG: 'True'
HOT_RELOAD: 'True'
此API不仅适用于本地操作,而且支持与微信平台对接。首先,需按照之前所述步骤获取API Key;接着,登录微信公众账号管理后台;选择“开发”选项;进入“基本配置”页面;在该页面中输入服务器API地址等必要信息。
以 Flask 为基础构建后端,我们能够处理微信信息,并调用相关接口。这样,我们便可以将人工智能技术整合到微信公众平台中。进而,更多的人能够通过微信平台享受到智能对话的便利。
在使用API密钥时,大家有没有遇到过什么特别棘手的问题?若这篇文章给您带来了一些帮助,还请记得点个赞,并且不妨将它分享给更多的人!
from flask import Flask, request, jsonify
import hashlib
import requests
import time
app = Flask(__name__)
TOKEN = "your_token_here" # 替换为您的微信Token
DEEPSEEK_API_KEY = "your_api_key_here" # 替换为您的DeepSeek API Key
# 微信验证接口
@app.route('/wechat', methods=['GET'])
def verify():
signature = request.args.get('signature', '')
timestamp = request.args.get('timestamp', '')
nonce = request.args.get('nonce', '')
echostr = request.args.get('echostr', '')
# 验证签名
tmp_list = sorted([timestamp, nonce, TOKEN])
tmp_str = ''.join(tmp_list).encode('utf-8')
hash_str = hashlib.sha1(tmp_str).hexdigest()
if hash_str == signature:
return echostr
else:
return 'Verification Failed'
# 处理用户消息
@app.route('/wechat', methods=['POST'])
def handle_message():
# 解析XML数据(需实现XML解析逻辑)
user_msg = extract_user_msg(request.data) # 自定义解析函数
user_input = user_msg.get('Content', '')
# 调用DeepSeek API
headers = {"Authorization": f"Bearer {DEEPSEEK_API_KEY}"}
response = requests.post(
"https://api.deepseek.com/v1/chat/completions",
headers=headers,
json={"messages": [{"role": "user", "content": user_input}]}
)
ai_response = response.json()['choices'][0]['message']['content']
# 返回微信XML格式响应
return f"""
{int(time.time())}
"""
if __name__ == '__main__':
app.run(port=80, host='0.0.0.0')
发表评论