本示例展示了如何借助模型上下文协议(Model Context Protocol,简称MCP),将AWS Bedrock的对话式人工智能功能与关系型数据库进行集成。具体而言,这是一个利用Bedrock开展自然语言查询数据库的示例。
使用以下命令克隆示例代码:
git clone https://github.com/your-username/chat-with-database.git
运行以下命令安装所需的Python包:
pip install -r requirements.txt
修改config/database_config.py文件,填写你的数据库信息:
DATABASE_TYPE = 'sqlite' # 或者 'postgres'
SQLITE_DB_NAME = 'mymcpdb.db' # SQLite默认数据库名称
POSTGRES_CONFIG = {
'host': 'your-rds-endpoint',
'database': 'your-database-name',
'user': 'your-db-user',
'password': 'your-db-password',
'ssl_cert_path': '/path/to/global-bundle.pem'
}
运行以下命令启动程序:
cd src
python3 chat.py --db-type [sqlite/postgres]
列出所有用户:
查询users表中的所有记录。
按价格排序产品:
将products表中的产品按价格从高到低排序。
RDS PostgreSQL数据库:根据实例类型和使用时长计费,具体费用可参考Amazon RDS定价。
Bedrock Claude模型调用API:费用根据调用次数和所选模型版本决定,详细信息请查看Bedrock定价。
Guardrail服务:提供额外的安全防护功能,费用参考Guardrail定价.
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO users (name, email) VALUES
('John Doe', 'john.doe@example.com'),
('Jane Smith', 'jane.smith@example.com'),
('Bob Wilson', 'bob.wilson@example.com'),
('Alice Johnson', 'alice.j@example.com'),
('Tom Brown', 'tom.brown@example.com');
CREATE TABLE products (
product_id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price DECIMAL(10,2) NOT NULL
);
INSERT INTO products (name, price) VALUES
('Amazon Echo Dot (5th Gen)', 49.99),
('Kindle Paperwhite 8GB', 139.99),
('Fire TV Stick 4K', 49.99),
('Ring Video Doorbell', 99.99),
('Amazon Smart Plug', 24.99);
这些表和数据仅用于测试目的,实际使用时可根据需求进行调整。