基于 AnalyticDB 与通义千问搭建 AI 智能客服
基于 AnalyticDB for PostgreSQL 向量引擎与通义千问大语言模型,构建检索增强生成(RAG)应用。方案利用专有网络 VPC、云服务器 ECS 及云原生数据仓库 AnalyticDB PostgreSQL 版实例,结合百炼平台实现企业私域知识的高效检索与大模型生成。通过 ROS 一键部署资源栈,开发者可快速体验智能客服功能,并掌握 Python 环境下的 RAG 代码实现逻辑,最终完成资源清理以控制成本。

基于 AnalyticDB for PostgreSQL 向量引擎与通义千问大语言模型,构建检索增强生成(RAG)应用。方案利用专有网络 VPC、云服务器 ECS 及云原生数据仓库 AnalyticDB PostgreSQL 版实例,结合百炼平台实现企业私域知识的高效检索与大模型生成。通过 ROS 一键部署资源栈,开发者可快速体验智能客服功能,并掌握 Python 环境下的 RAG 代码实现逻辑,最终完成资源清理以控制成本。

基于检索增强生成(Retrieval-Augmented Generation, RAG)技术的 AI 智能客服能够高效地检索企业私域知识库,并利用大语言模型理解问题的上下文和意图,生成准确、贴切的答案。开发者将企业私域知识上传到智能问答系统后,企业业务人员就能通过提问快速获取公司政策、操作流程、专业知识等信息,客户也能快速得到产品知识、售后问题的答案。
本方案基于 AnalyticDB for PostgreSQL 的高效向量引擎与阿里云自主研发的通义千问 LLM 模型,构建一个高性能的检索增强生成(RAG)应用,实现企业的 AI 智能客服。
大模型虽然可以理解并生成自然语言,但由于缺乏特定领域的专业知识、没有企业的私域知识、知识更新不及时等问题,无法直接用于企业的 AI 智能客服。为了解决这一问题,企业可以采用 RAG 技术,从外部知识库(企业的私域知识)检索知识。召回的知识将和原始查询融合成 prompt,为大模型提供更丰富的上下文信息,从而生成更加准确的回答。
在阿里云上搭建的云上私有网络环境包括以下基础设施和云服务:
开始部署前,请按以下指引完成账号申请、账号充值和授权。
如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册并进行个人实名认证。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。
本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。如果确定任何一个云资源采用按量付费方式部署,账户余额都必须大于等于 100 元。
资源编排(ROS)可以让您通过 YAML 或 JSON 文件清晰简洁地描述所需的云资源及其依赖关系,然后自动化地创建和配置这些资源。您可以通过下方提供的 ROS 一键部署链接,来自动化地完成这些资源的创建和配置。
为了帮助您更好地理解 RAG 流程,以下提供基于 Python 的核心逻辑示例。该代码展示了如何连接 AnalyticDB 进行向量检索,并调用通义千问 API 生成回答。
import os
from aliyunsdkcore.client import AcsClient
from aliyunsdkdashscope.api_call import api_call
from dashscope import Embedding
from dashscope import Generation
# 配置环境变量
DASHSCOPE_API_KEY = os.getenv('DASHSCOPE_API_KEY')
ADB_HOST = os.getenv('ADB_HOST')
ADB_PORT = os.getenv('ADB_PORT')
ADB_USER = os.getenv('ADB_USER')
ADB_PASSWORD = os.getenv('ADB_PASSWORD')
# 1. 文本向量化 (Embedding)
def get_embedding(text):
response = Embedding.call(
model='text-embedding-v2',
input=text
)
if response.status_code == 200:
return response.output.embeddings[0].embedding
else:
raise Exception(f"Embedding failed: {response}")
# 2. 向量检索 (Vector Search)
def search_vector(query_vector, top_k=5):
# 此处需根据实际 AnalyticDB SQL 语法执行向量相似度搜索
# 伪代码示例:SELECT * FROM knowledge_table ORDER BY vector_distance(column, query_vector) LIMIT top_k
print(f"Searching for similar vectors with dimension {len(query_vector)}")
# 实际开发中需使用 psycopg2 等库连接数据库执行 SQL
return []
# 3. 生成回答 (Generation)
def generate_answer(prompt):
response = Generation.call(
model='qwen-max',
messages=[
{'role': 'system', 'content': '你是一个专业的智能客服助手。'},
{'role': 'user', 'content': prompt}
]
)
if response.status_code == 200:
return response.output.choices[0].message.content
else:
return "抱歉,我无法回答这个问题。"
# 4. 主流程
if __name__ == '__main__':
user_query = "哪款手机续航时间最长?"
# 获取用户问题向量
query_vec = get_embedding(user_query)
# 检索相关知识片段
retrieved_docs = search_vector(query_vec)
# 构建 Prompt
context = "\n".join([doc['content'] for doc in retrieved_docs])
final_prompt = f"基于以下信息:{context},请回答用户问题:{user_query}"
# 生成回答
answer = generate_answer(final_prompt)
print(answer)
在 ROS 控制台资源栈列表页,找到目标资源栈,单击资源栈 ID,然后切换到输出页签。
复制 WebUrl 的地址,粘贴到浏览器地址栏,访问 AI 智能客服。
在提问框中提问,例如'哪款手机续航时间最长'。您可以看到此时大模型的回答参考了您上传的百炼系列手机产品介绍。
在本方案中,您创建了 1 台云服务器 ECS 实例、1 个云原生数据仓库 AnalyticDB PostgreSQL 版实例、1 个百炼应用、1 个安全组、1 个交换机、1 个专有网络 VPC。完成本文方案的体验后,如需删除资源,可按下文操作。
本方案展示了如何利用 AnalyticDB for PostgreSQL 的向量检索能力结合通义千问大模型,快速构建企业级 AI 智能客服。通过 RAG 架构,企业能够在保护数据隐私的前提下,利用大模型提升服务效率。开发者可根据实际需求调整知识库内容、优化 Prompt 工程,并进一步集成至现有业务系统中。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online