api_key = "your_api_key_here" # 替換為您的API Key
os.environ["DEEPSEEK_API_KEY"] = api_key
此外,您也可以在系統(tǒng)環(huán)境中設(shè)置環(huán)境變量,例如在Linux或Mac系統(tǒng)中,可以在終端中運(yùn)行以下命令:
bash復(fù)制
export DEEPSEEK_API_KEY="your_api_key_here"
這樣,您就可以在代碼中通過os.environ["DEEPSEEK_API_KEY"]來獲取API Key。
獲取API Key后,就可以通過編程接口調(diào)用DeepSeek的API了。DeepSeek的API與OpenAI完全兼容,因此您可以使用OpenAI的SDK來訪問DeepSeek API。以下是一個(gè)使用Python調(diào)用DeepSeek API的示例代碼:
Python復(fù)制
from openai import OpenAI
# 初始化OpenAI客戶端
client = OpenAI(api_key=os.environ["DEEPSEEK_API_KEY"], base_url="https://api.deepseek.com")
# 創(chuàng)建對話消息
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
# 調(diào)用API
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
stream=False
)
# 輸出AI回復(fù)
print("AI回復(fù):", response.choices[0].message.content)
在上述代碼中,model參數(shù)指定為deepseek-chat,表示使用DeepSeek-V3模型。messages參數(shù)是一個(gè)列表,包含系統(tǒng)消息和用戶消息。系統(tǒng)消息用于定義AI的角色和行為,用戶消息則是用戶輸入的內(nèi)容。調(diào)用API后,DeepSeek會(huì)返回一個(gè)響應(yīng),其中response.choices[0].message.content包含了AI的回復(fù)內(nèi)容。
DeepSeek的/chat/completions API是一個(gè)“無狀態(tài)”API,即服務(wù)端不會(huì)記錄用戶請求的上下文。因此,要實(shí)現(xiàn)多輪對話,需要在每次請求時(shí)將之前所有對話歷史拼接好后傳遞給API。以下是一個(gè)實(shí)現(xiàn)多輪對話的Python代碼示例:
Python復(fù)制
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})
# 調(diào)用API
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
stream=True
)
# 輸出AI回復(fù)
print("AI回復(fù):")
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print()
在上述代碼中,使用了while循環(huán)來實(shí)現(xiàn)多輪對話。每次用戶輸入后,將用戶的消息添加到messages列表中,然后調(diào)用API。通過設(shè)置stream=True參數(shù),可以逐行獲取AI的回復(fù)內(nèi)容,并實(shí)時(shí)顯示給用戶。
除了在本地應(yīng)用中調(diào)用DeepSeek API,您還可以將DeepSeek的AI能力接入微信平臺(tái),例如個(gè)人微信或微信公眾平臺(tái)。以下是接入個(gè)人微信的步驟:
docker-compose.yml文件:創(chuàng)建一個(gè)文件夾,并在其中新建一個(gè)docker-compose.yml文件。將以下內(nèi)容復(fù)制到文件中:yaml復(fù)制
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'
docker-compose.yml文件所在目錄的地址欄輸入cmd,進(jìn)入控制臺(tái)。輸入命令docker-compose up -d,然后回車。等待部署完成后,用微信小號掃碼登錄即可。要將DeepSeek接入微信公眾平臺(tái),需要通過微信公眾平臺(tái)的開發(fā)接口實(shí)現(xiàn)消息交互。以下是接入微信公眾平臺(tái)的步驟:
Python復(fù)制
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
# 微信驗(yàn)證接口
@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', '')
# 驗(yàn)證簽名
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數(shù)據(jù)(需實(shí)現(xiàn)XML解析邏輯)
user_msg = extract_user_msg(request.data) # 自定義解析函數(shù)
user_input = user_msg.get('Content', '')
# 調(diào)用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格式響應(yīng)
return f"""
<xml>
<ToUserName><![CDATA[{user_msg['FromUserName']}]]></ToUserName>
<FromUserName><![CDATA[{user_msg['ToUserName']}]]></FromUserName>
<CreateTime>{int(time.time())}</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[{ai_response}]]></Content>
</xml>
"""
if __name__ == '__main__':
app.run(port=80, host='0.0.0.0')
DeepSeek-V3提供與OpenAI相同的API格式,但具有更低的成本和更高的性能。此外,DeepSeek還支持自定義模型和擴(kuò)展能力,適合團(tuán)隊(duì)項(xiàng)目。
在調(diào)用DeepSeek API時(shí),將stream參數(shù)設(shè)置為true即可啟用流式輸出。例如:
Python復(fù)制
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
stream=True
)
DeepSeek支持多用戶管理和API Key權(quán)限分配。您可以為不同的用戶分配不同權(quán)限的API Key,以確保項(xiàng)目的安全性。
通過本文的介紹,您應(yīng)該已經(jīng)掌握了如何獲取DeepSeek API Key,并將其應(yīng)用于Python程序和微信平臺(tái)中。DeepSeek的強(qiáng)大功能和與OpenAI兼容的API接口,使其成為開發(fā)者在自然語言處理和智能對話領(lǐng)域的一個(gè)優(yōu)秀選擇。希望本文能夠幫助您快速上手DeepSeek,開啟智能對話之旅。
更多相關(guān)文章: