
使用 Whisper API 通过设备麦克风把语音转录为文本
在开始开发微信小程序与腾讯云DeepSeek API的对接之前,我们需要做好必要的环境准备工作。本章将指导你完成开发环境的搭建,包括安装最新版本的微信开发者工具(IDE),配置小程序的基本信息,如果你习惯于wxml语法的开发,本教程中也会有关于
腾讯云AI代码助手插件
的安装,需要注意的是本教程对于
腾讯云AI代码助手插件
仅停留在安装的这一步骤,因为我还是习惯于uniapp的使用。让我们按照以下步骤,一步步完成开发环境的准备工作。
❝注意:第一次使用微信开发者工具时,第一步并不是下载微信开发者工具哦! 而是前往小程序后台, 进行注册并完成小程序开发者认证,这一内容本篇不会详细讲解。关于:微信开发者工具,我们需要点链接选择符合自己电脑版本的ide进行下载。
下载完成之后按照提示进行安装即可。
当开发工具安装完成之后,我们首先创建一个空的项目模板如下图所示。
❝腾讯云AI代码助手现已完全集成到微信开发者工具中,配置过程变得更加简便。具体步骤如下:
如上图所示三步帮你安装腾讯云AI代码助手点击图中所示的
1
(扩展)。在
2
(输入框)中输入
腾讯云
即可点击
3
(安装),等待安装完成之后我们就可以体验啦如下所示,腾讯AI代码助手目前已整合了
tencent-deepseek R1
模型。开发者可以尽情的体验
tencent-deepseek R1
模型带来的便捷开发体验了喽~~
❝温馨提示:由于本人习惯于uniapp 项目的开发因此本项目使用的是uniapp来打包运行我们的小程序项目UI界面如下图所示:
我们的UI界面设计简洁,主要包含以下四个核心组件:
公众号
,
小红书
等类型,来决定文案生成的类型。
运行效果图如下
下面是腾讯云DeepSeek API最新计费标准,注意自己的token使用哦!
❝📢 腾讯云DeepSeek API 最新计费标准🕒 生效时间:2025年2月26日 0时起 DeepSeek 模型价格表[表格]📚 详细文档: 腾讯云DeepSeek API调用指南
关于 DeepSeek API 接口的相关文档可以点击链接进行查看,接下来我们将逐步实现如何配置腾讯云DeepSeek为我们接下来的开发作准备。
创建API KEY
API 使用前提是需要用于一个API KEY,访问地址: (https://console.cloud.tencent.com/lkeap/api) 来创建我们的API KEY 如下图所示,点击按钮
创建API KEY
即可,点击查看时可以看到已经创建的
API KEY
编写py代码进行本地请求我这里用的是
Flask
框架,为我们小程序调用DeepSeek API提供接口服务,代码如下:
import os
import logging
from flask import Flask, request, jsonify
from flask_cors import CORS
from openai import OpenAI
from typing import Dict, Any
# 初始化Flask应用
app = Flask(__name__)
CORS(app) # 启用跨域支持
# 配置日志记录
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# 环境变量配置
OPENAI_CONFIG = {
"api_key": os.getenv("OPENAI_API_KEY", "sk-pXLyNnk8bdl8zkmFkBIi7KBRiaLTATlmGsr8QfTwek7Zawfk"),
"base_url": os.getenv("OPENAI_BASE_URL", "https://api.lkeap.cloud.tencent.com/v1")
}
# 初始化OpenAI客户端
client = OpenAI(**OPENAI_CONFIG)
def validate_request(data: Dict[str, Any]) -> tuple:
"""请求参数验证"""
if not data.get('content'):
logger.warning("Missing content parameter")
return False, "Content parameter is required"
if len(data['content']) > 1000:
logger.warning("Content length exceeds limit")
return False, "Content exceeds maximum length of 1000 characters"
return True, ""
def process_stream_response(stream) -> dict:
"""处理流式响应数据"""
result = {"reasoning_content": "", "answer_content": ""}
for chunk in stream:
if not chunk.choices:
continue
delta = chunk.choices[0].delta
# 使用getattr安全获取属性
if reasoning := getattr(delta, 'reasoningcontent', None):
result["reasoning_content"] += reasoning
if content := getattr(delta, 'content', None):
result["answer_content"] += content
return result
@app.route('/deepseekapi', methods=['POST'])
def generate_content():
"""
处理生成请求
---
parameters:
- name: body
in: body
required: true
schema:
type: object
properties:
content:
type: string
responses:
200:
description: 生成结果
400:
description: 无效请求
500:
description: 服务器错误
"""
# 请求验证
data = request.get_json()
print(data)
is_valid, message = validate_request(data)
if not is_valid:
return jsonify({"error": message}), 400
try:
# 创建流式请求
stream = client.chat.completions.create(
model="deepseek-r1",
messages=[{"role": "user", "content": data['content']}],
stream=True,
temperature=0.7, # 添加生成参数
max_tokens=1000
)
# 处理流式响应
processed_data = process_stream_response(stream)
# 结果后处理
processed_data["answer_content"] = processed_data["answer_content"].strip()
return jsonify(processed_data)
except Exception as e:
logger.error(f"API请求失败: {str(e)}", exc_info=True)
return jsonify({"error": "服务暂时不可用,请稍后再试"}), 500
if __name__ == "__main__":
app.run(
host=os.getenv("FLASK_HOST", "0.0.0.0"),
port=int(os.getenv("FLASK_PORT", 5001)),
debug=os.getenv("FLASK_DEBUG", "false").lower() == "true"
)
验证我们的
Flask
框架暴露出来的请求信息如下:
curl --location --request POST 'http://192.168.31.134:5001/deepseekapi'
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)'
--header 'Content-Type: application/json'
--header 'Accept: */*'
--header 'Host: 192.168.31.134:5001'
--header 'Connection: keep-alive'
--data-raw '{ content: "请根据以下内容生成500字小红书种草文案:↵关键词:三亚,海边,游泳,拍照↵"}'
我们通过postman来测试其连通性,如下图所示运行服务
postman 数据返回
postman 接口配置示例
我们输入的
content
内容是:
请根据以下内容生成500字小红书种草文案:↵关键词:三亚,海边,游泳,拍照↵
发送请求查看结果。此时我们的DeepSeek接口的本地调用就已经完成了。整体来说整个过程还是蛮丝滑的,接下来我们分析一下如何实现小程序的对接。
<!--
-->
tip:
关于注释地方会在最下面的附录项进行讲解说明
startGenerate() {
// 1. 判断用户是否上传图片或输入关键词
if (!this.textArea) {
uni.showToast({
title: "请输入关键词",
icon: "none",
});
return;
}
// 2. 配置prompt提示词
let prompt = 请根据以下内容生成500字${this.typeText}文案:n
;
// 添加关键词内容
if (this.textArea) {
prompt += 关键词:${this.textArea}n
;
}
// 添加图片信息
// if (this.fileList.length > 0) {
// prompt += ${this.fileList[0].url}n
;
// }
// 3. 设置加载状态
this.loading = true;
// 4. 接口调用
request({
url: "/deepseekapi",
method: "POST",
data: {
content: prompt,
},
})
.then((res) => {
console.log("生成成功:", res);
this.loading = false;
this.resultText =
res.answer_content || "文案生成失败,请稍后重试...";
})
.catch((err) => {
console.error("生成失败:", err);
this.loading = false;
});
},
此处我们主要实现的事对于提示词的拼接,然后进行接口的调用, 需要注意的是,我进行的提示词拼接可能并不是最完美的,具体应用到业务层时还需要微调哦!!
效果演示如下图所示:
该小程序其实最初的设计是有个图片识别功能,通过识别图片来生成对应的文案,但是目前如果仅使用
腾讯云DeepSeek API
是无法实现该功能的,需要结合
大模型知识引擎
中的 (https://cloud.tencent.com/document/product/1759/107908) 的接口,通过识别图片内容之后再次调用
腾讯云DeepSeek API
来获取对应的文案。
通过本教程,开发者可以快速搭建一个基于腾讯云DeepSeek API的文案生成小程序,为内容创作提供AI助手支持。后续还可以扩展更多功能,如图片识别等高级特性,进一步提升应用的实用性。
uniapp
源码访问地址 : (https://gitcode.com/qq_33681891/txDeepseek)