在当今信息密集的企业环境中,如何快速、安全地构建专属知识库成为提升效率的关键。本教程将手把手教你如何从零开始,借助 Amazon Bedrock 控制台与 DeepSeek 大语言模型,将企业内部文档转化为可交互的问答系统(RAG 架构)。无需任何编程经验,只需按照步骤操作,即可轻松完成搭建与体验。
第一步 登录亚马逊云科技账号
- 打开浏览器,注册并登录亚马逊云科技管理控制台登录页面。
亚马逊云科技为开发者提供了众多免费云产品。想深入体验基于亚马逊云科技平台部署DeepSeek-R1大模型,可以访问亚马逊云科技官网

- 登录亚马逊云科技账号。

第二步 企业知识数据的准备与导入
- 在控制台顶部搜索栏中输入"S3",点击进入 Amazon S3 控制台。

- 点击【Create bucket】(创建存储桶),输入存储桶名称

- 填写存储桶名字,其他设置保持默认,再次点击【Create bucket】(创建存储桶)

- 创建完成后,点击进入该 bucket

- 点击【Upload】(上传)

- 上传你的知识文档,例如 PDF、DOCX、TXT、HTML 等格式的文件

- 例如,我们将一份 txt 格式的 "2025 年公司考勤管理制度" 上传到 S3 存储桶(其中做了一些自定义设置,以便于验证知识库调用)


第三步 开通 Amazon Bedrock 和 DeepSeek 模型权限
- 在亚马逊云科技控制台的搜索框中输入 "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 中输入以下代码,创建项目文件夹:
plainText
mkdir aws_rag_project
cd aws_rag_project
- 为 Python 安装必要库:
plainText
pip install boto3 langchain langchain-community pandas python-dotenv
- 继续在 Anaconda Prompt 中配置亚马逊云科技登录授权
plainText
aws configure
- 这里需要输入你的:Amazon Access Key ID,AWS Secret Access Key,默认 Region

- 以上这些信息可以在亚马逊云科技的 IAM 中获取或者新建 access key,具体 IAM 使用方法可参考相关教程

- 在 Anaconda Prompt 中创建项目环境设置.env 文件:
plainText
echo AWS_REGION=us-east-1 > .env
echo AWS_PROFILE=default >> .env
- 成功后,会在项目文件夹中看到,env 文件

- 将以下调用 DeepSeek 的 python 文件保存在项目文件夹中

- 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("✅ Amazon 环境配置成功,开始调用知识库...")
# 第五步:设置知识库 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 的问答能力。该系统适用于员工培训、客户支持、产品问答等多种场景,有效提升信息获取效率。