零基础教程|Bedrock+DeepSeek快速搭建企业智能客服系统

零基础教程|Bedrock+DeepSeek快速搭建企业智能客服系统本教程将引导您快速构建一个智能客服系统 结合 Amazon Bedrock DeepSeek 大模型和企业知识库 通过 Flask 框架搭建 Web 服务 实现智能问答功能 本教程专注于 Flask 应用的本地搭建和功能实现 适合希望在本地环境中测试和开发智能客服系统的企业用户 对于未来计划将系统部署到微信公众号 网页客服或内部系统的用户 Flask 应用也可以作为后端服务 便于与这些平台进行集成 一

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



本教程将引导您快速构建一个智能客服系统,结合Amazon Bedrock、DeepSeek大模型和企业知识库,通过Flask框架搭建Web服务,实现智能问答功能。

本教程专注于Flask应用的本地搭建和功能实现,适合希望在本地环境中测试和开发智能客服系统的企业用户。对于未来计划将系统部署到微信公众号、网页客服或内部系统的用户,Flask应用也可以作为后端服务,便于与这些平台进行集成。




mkdir flask_chatbot cd flask_chatbot
conda create -n flask_bot_env python=3.10 conda activate flask_bot_env
pip install flask boto3 langchain langchain-community python-dotenv
aws configure
  • Amazon Access Key ID
  • Amazon Secret Access Key
  • 默认Region
echo AWS_DEFAULT_REGION=xxx(你的bedrock所在区域)> .env echo AWS_ACCESS_KEY_ID=xxx (你的ACCESS_KEY_ID)>> .env echo AWS_SECRET_ACCESS_KEY=xxx (你的SECRET_ACCESS_KEY)>>> .env
import os import logging from flask import Flask, render_template, request, jsonify from flask_cors import CORS import boto3 from dotenv import load_dotenv

加载环境变量

load_dotenv()

初始化 Flask 应用

app = Flask(name) CORS(app)

设置日志

logging.basicConfig(level=logging.INFO) logger = logging.getLogger(name)

初始化 AWS 会话

session = boto3.Session(

aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"), aws_secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"), region_name=os.getenv("AWS_DEFAULT_REGION", "us-east-1") 

)

初始化 Bedrock 客户端

bedrock_runtime = session.client(“bedrock-runtime”) bedrock_agent = session.client(“bedrock-agent-runtime”)

配置参数

使用 Amazon DeepSeek 的跨区域推理配置文件 ARN

MODEL_ARN = “你的 model ARN” # 可替换为其他模型 KNOWLEDGE_BASE_ID = “你的知识库ID” # 在控制台查看 Knowledge Base ID

@app.route(“/”) def home():

return render_template("index.html")

@app.route(“/chat”, methods=[“POST”]) def chat():

try: data = request.get_json() user_message = data.get("message", "").strip() if not user_message: return jsonify({"message": "消息不能为空"}), 400 logger.info(f"用户输入: {user_message}") logger.info("开始连接知识库并生成回答...") # 调用 Bedrock Agent 进行知识库检索和生成回答 response = bedrock_agent.retrieve_and_generate( input={"text": user_message}, retrieveAndGenerateConfiguration={ "type": "KNOWLEDGE_BASE", "knowledgeBaseConfiguration": { "knowledgeBaseId": KNOWLEDGE_BASE_ID, "modelArn": MODEL_ARN, "retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": 3 } }, "generationConfiguration": { "inferenceConfig": { "textInferenceConfig": { "temperature": 0.3, "maxTokens": 1024, "topP": 0.9 } }, "promptTemplate": { "textPromptTemplate": """\n\nHuman: 请根据以下知识库内容用中文回答问题: 
  
    
    
      $search_results$ 
     问题: $input$ \n\nAssistant:""" } } } } ) logger.info("成功连接知识库,生成回答完成。") # 提取回答内容 bot_reply = response.get("output", {}).get("text", "未能生成回答") # 提取引用来源 citations = response.get("citations", []) sources = [] for c in citations: references = c.get("retrievedReferences", []) for ref in references: s3_uri = ref.get("location", {}).get("s3Location", {}).get("uri", "") excerpt = ref.get("content", {}).get("text", "")[:100] sources.append({ "title": s3_uri.split("/")[-1] if s3_uri else "未知文档", "excerpt": excerpt + "..." }) return jsonify({ "message": bot_reply, "sources": sources }) except Exception as e: logger.error(f"请求失败: {str(e)}", exc_info=True) return jsonify({"message": f"请求失败: {str(e)}"}), 500 

if name == “main”:

app.run(host="0.0.0.0", port=5000, debug=True)
 

 
   
     
      
       
       智能客服助手 
        
      
     

 
   
     
     

flask==3.0.3 boto3==1.36.3 flask-cors==5.0.1 python-dotenv==0.21.

参考资源
Amazon Bedrock用户指导手册:
docs.aws.amazon.com/zh_






小讯
上一篇 2026-04-03 15:13
下一篇 2026-04-03 15:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/224795.html