使用 Amazon Bedrock 与 DeepSeek 大模型轻松搭建知识库

Olawale Olaleye
难度
初级
时间
20 分钟
所需费用
受众

业务开发人员

相关产品
上次更新时间
2025 年 4 月 7 日
前提条件

亚马逊云科技海外区域账号,Amazon Bedrock 及相关模型使用权限

相关行业

通用

教程简介

在当今信息密集的企业环境中,如何快速、安全地构建专属知识库成为提升效率的关键。本教程将手把手教你如何从零开始,借助 Amazon Bedrock 控制台与 DeepSeek 大语言模型,将企业内部文档转化为可交互的问答系统(RAG 架构)。无需任何编程经验,只需按照步骤操作,即可轻松完成搭建与体验。

第一步 登录亚马逊云科技海外区域账号

  • 登录你的 AWS 账号。

第二步 企业知识数据的准备与导入

  • 在控制台顶部搜索栏中输入“S3”,点击进入 Amazon S3 控制台
  • 点击【Create bucket】(创建存储桶),输入存储桶名称
  • 填写存储桶名字,其他设置保持默认,再次点击【Create bucket】(创建存储桶)
  • 创建完成后,点击进入该 bucket
  • 点击【Upload】(上传)
  • 上传你的知识文档,例如 PDF、DOCX、TXT、HTML 等格式的文件
  • 例如,我们将一份 txt 格式的 “2025 年公司考勤管理制度” 上传到 S3 存储桶(其中做了一些自定义设置,以便于验证知识库调用)

第三步 开通 Amazon Bedrock 和 DeepSeek 模型权限

  • 在 AWS 控制台的搜索框中输入 “Bedrock”,然后点击 Amazon Bedrock
  • 进入 Amazon Bedrock 页面后,找到页面中的 “Model access”(模型访问)设置板块,仔细检查自身账号是否已具备 DeepSeek 的使用权限
  • 如果没有 DeepSeek 模型的使用权限,点击页面上的 “申请” 按钮。
  • 在模型选择页面中,勾选本次教程所需的 DeepSeek 模型。
  • 完成模型勾选后,点击 “提交” 按钮完成模型申请操作。
  • 通常提交申请后,系统会在短时间内审核并授予权限,待权限获取成功,我们就可以开始使用 DeepSeek 模型了。

第四步 创建企业知识库(Knowledge base)

  • 返回 Bedrock 控制台,点击左侧【Knowledge Base】(知识库),进入知识库管理页面。
  • 点击【Create】(创建),根据准备的数据类型,选择开始创建流程
  • 自定义知识库名称 Knowledge Base Name:如 company - kb
  • 设置知识库数据来源:选择 S3,因为要连接到我们刚才上传的 S3 存储桶
  • 设置完成,点击【next】(下一步)
  • 选择 S3 数据源
  • 选择我们上传文档的 S3 Bucket
  • 继续点击【next】(下一步)
  • 设置嵌入模型:
  • 建议选择 Amazon Titan Embeddings(Bedrock 原生)
  • 设置向量存储:这里可以保留默认 (Amazon OpenSearch Serverless)
  • 点击【next】(下一步) 后,确认设置,点击【Create knowledge base】(创建知识库)。
  • 等待几分钟,知识库文档会自动进行解析、嵌入并构建索引。

第五步 调用生产模型

  • 首先我们需要在 Amazon Bedrock 的操作界面中,进入 Knowledge Bases,勾选新建的 knowledge base,请点击【Sync】(同步) 来同步知识库
  • 选择测试知识库的生产模型,目前在控制台内只能测试部分大模型
  • 在右侧对话框中,我们可以使用选择的大模型对刚刚上传的公司考勤制度进行测试。这里可以看到大模型根据知识库中的信息对我们的问题进行了回答

第六步:使用 Python 基于知识库调用 DeepSeek 大模型

  • 安装 Python,可以使用 Anaconda,一键装好 Python 和虚拟环境 ,安装完成后,打开 “Anaconda Prompt”
  • 在 Anaconda Prompt 中输入以下代码,创建项目文件夹:
mkdir aws_rag_project
cd aws_rag_project
  • 为 Python 安装必要库:
pip install boto3 langchain langchain-community pandas python-dotenv
  • 继续在 Anaconda Prompt 中配置 AWS 登录授权
aws configure
  • 这里需要输入你的:AWS Access Key ID,AWS Secret Access Key,默认 Region
  • 以上这些信息可以在 AWS 的 IAM 中获取或者新建 access key,具体 IAM 使用方法可参考相关教程
  • 在 Anaconda Prompt 中创建项目环境设置.env 文件:
echo AWS_REGION=us-east-1 > .env
echo AWS_PROFILE=default >> .env
  • 成功后,会在项目文件夹中看到,env 文件
  • 将以下调用 DeepSeek 的 python 文件保存在项目文件夹中
  • Python 文件代码如下:
import os
import boto3
from dotenv import load_dotenv
from botocore.exceptions import NoCredentialsError, ProfileNotFound

# 第一步:加载 .env 文件
load_dotenv()

# 第二步:读取环境变量
region = os.getenv("AWS_REGION")
profile = os.getenv("AWS_PROFILE")

print("🔍 检查当前 AWS 配置...")
print("📍 AWS Region:", region)
print("👤 AWS Profile:", profile)

# 第三步:验证 AWS 配置是否存在
if not region or not profile:
    print("❌ 错误:环境变量 AWS_REGION 或 AWS_PROFILE 未设置。请检查 .env 文件。")
    exit(1)

# 第四步:尝试连接 AWS Bedrock
try:
    session = boto3.Session(profile_name=profile, region_name=region)
    bedrock_agent_runtime = session.client(service_name='bedrock-agent-runtime')
except ProfileNotFound:
    print(f"❌ 错误:找不到名为 '{profile}' 的 AWS profile。请先运行 aws configure 设置。")
    exit(1)
except NoCredentialsError:
    print("❌ 错误:未检测到有效的 AWS 凭证。请确保已使用 aws configure 设置 Access Key。")
    exit(1)

print("✅ AWS 环境配置成功,开始调用知识库...")

# 第五步:设置知识库 ID 和模型 ARN(请替换为你自己的)
knowledge_base_id = "你的知识库ID"  # ← 在控制台查看 Knowledge Base ID
model_arn = "你的 model ARN"  # 可替换为 DeepSeek 等

# 第六步:输入你的问题
user_input = "公司全勤奖是多少钱?"

# 第七步:调用知识库进行 RAG 问答
try:
    response = bedrock_agent_runtime.retrieve_and_generate(
        input={"text": user_input},
        retrieveAndGenerateConfiguration={
            "type": "KNOWLEDGE_BASE",
            "knowledgeBaseConfiguration": {
                "knowledgeBaseId": knowledge_base_id,
                "modelArn": model_arn
            }
        }
    )

    # 第八步:打印模型回答
    print("\n🤖 模型回答:")
    print(response["output"]["text"])

except Exception as e:
    print("❌ 出现错误:", str(e))
  • 其中第五步中需要设置好你的知识库 ID 和你想要调用模型的 ARN
  • 知识库ID可以在 Bedrock 的 knowledge base 中找到
  • Model ARN 建议在 Bedrock 的 Cross-region inference 中找到,这里我们搜索 DeepSeek 可以获取相应 ARN。
  • 现在我们可以在 Anaconda Prompt 中运行 Python 文件,调用 DeepSeek 大模型,并结合企业知识库进行问答。例如,当我们提出有关员工迟到和全勤奖励的规定时,DeepSeek 会基于我们上传的考勤制度文件,给出准确的回答。

第七步 退出/清理环境

Amazon Bedrock 控制台中的 Playground 属于即开即用型服务,使用完毕后无需额外退出操作即可结束会话,无需担心资源占用问题。但需要注意的是,知识库底层依赖的 Amazon OpenSearch Serverless(用于向量化数据的存储与检索)会单独计费。因此,如果确定短期内不再使用该知识库,建议按照以下顺序清理资源,以避免产生不必要的费用:

在 Bedrock 里面删除 knowledge base

  • 在 OpenSearch 里面删除 collections
  • 在 S3 服务中删除上传的 S3 文件:

小结

至此,通过以上 7 个步骤,你已经成功搭建了一个企业级的知识库问答系统,全流程在控制台中完成,无需编写代码。如果需要调用控制台暂不支持的大模型,也可以通过提供的 Python 脚本实现。企业可持续上传更多文档至 S3 存储桶,以增强 AI 的问答能力。该系统适用于员工培训、客户支持、产品问答等多种场景,有效提升信息获取效率。

费用评估和优惠

目前通过 Bedrock 调用 DeepSeek 费用可以参考 Bedrock 价格页面

参考

更多教程

快速搭建容量高达 35GB 的免费个人网盘

本教程将介绍如何搭建一个没有使用限制的免费私人网盘。

构建企业专属智能客服机器人

本文将演示如何结合多种服务,打造企业专属的智能客服。

使用生成式 AI 构建多语言问答知识库

使用多种服务,构建可汇总搜索结果的多语言知识库。

查看全部教程 >>

免费套餐

AWS 海外区域

拓展海外业务或个人体验
免费使用 100 余种云产品或服务, 长达 12 个月

AWS 中国区域

发展中国业务
免费使用 40 余种核心云服务产品,长达 12 个月