Tác giả: John Baker, Nate Folkert, Mark Roy, và Vikram Gundeti
Ngày đăng: 21/04/2025
Chủ đề: Amazon Bedrock Agents, Amazon Bedrock Guardrails, Customer Solutions
Bài viết này được đồng tác giả với Vikram Gundeti và Nate Folkert từ Foursquare.
Cá nhân hóa là chìa khóa để tạo ra những trải nghiệm đáng nhớ. Dù là đề xuất một bộ phim hoàn hảo hay gợi ý một nhà hàng mới, việc điều chỉnh các gợi ý theo sở thích cá nhân có thể tạo nên sự khác biệt vượt trội Tuy nhiên, khi nói đến đồ ăn và các hoạt động, không chỉ có sở thích cá nhân cần được xem xét. Vị trí và thời tiết cũng đóng vai trò quan trọng trong việc định hình lựa chọn của chúng ta. Hãy tưởng tượng bạn đang lên kế hoạch cho một ngày đi chơi: vào một buổi chiều nắng đẹp, một buổi dã ngoại thư giãn trong công viên có thể là lý tưởng, nhưng nếu trời mưa to, một quán cà phê ấm cúng trong nhà sẽ hấp dẫn hơn nhiều. Vì vậy, thách thức là tạo ra một agent có thể tích hợp liền mạch các yếu tố này—vị trí, thời tiết và sở thích cá nhân—để cung cấp các gợi ý thực sự được cá nhân hóa.
Để giải quyết thách thức này, chúng ta có thể kết hợp Amazon Bedrock Agents và API Foursquare. Trong bài viết này, chúng tôi trình bày cách bạn có thể sử dụng một agent nhận biết vị trí để mang lại các phản hồi được cá nhân hóa cho người dùng.
Amazon Bedrock Agents
Amazon Bedrock là một nền tảng giúp xây dựng và mở rộng các ứng dụng AI Tạo Sinh (generative AI) một cách đơn giản. Nền tảng này cung cấp quyền truy cập vào nhiều mô hình nền tảng (foundation models – FMs) hiệu suất cao từ các công ty AI hàng đầu như AI21 Labs, Anthropic, Cohere, Luma, Meta, Mistral AI, Stability AI và Amazon, tất cả thông qua một API duy nhất. Điều này có nghĩa là bạn không cần quản lý cơ sở hạ tầng, vì đây là một dịch vụ không máy chủ (serverless) và tích hợp với các dịch vụ AWS quen thuộc để đảm bảo an ninh, quyền riêng tư và trí tuệ nhân tạo có trách nhiệm. Bạn có thể thử nghiệm với các mô hình, tùy chỉnh chúng bằng dữ liệu của mình và xây dựng ứng dụng mà không cần viết mã phức tạp.
Amazon Bedrock Agents là một tính năng trong Amazon Bedrock cho phép bạn tạo ra các agent AI tự động. Các agent này có thể hiểu yêu cầu của người dùng, phân chia chúng thành các bước và hoàn thành nhiệm vụ bằng cách kết nối với các API và nguồn dữ liệu của công ty bạn. Ví dụ, chúng có thể tự động hóa các quy trình như xử lý yêu cầu bảo hiểm hoặc quản lý hàng tồn kho, giúp chúng xử lý hiệu quả các tác vụ kinh doanh. Chúng tự động xử lý kỹ thuật prompt (prompt engineering), bộ nhớ và bảo mật, giúp bạn thiết lập nhanh chóng mà không cần quản lý cơ sở hạ tầng.
API Foursquare Places
API Foursquare Places cung cấp dữ liệu vị trí thông minh chính xác cho các ứng dụng yêu cầu nhận thức bối cảnh. Được xây dựng dựa trên tập dữ liệu toàn cầu mã nguồn mở với 100 triệu điểm quan tâm trải dài 1.500 danh mục, API Places chuyển đổi tọa độ địa lý thành thông tin theo ngữ cảnh để hỗ trợ ra quyết định..
API GeoTagging phân giải chính xác tọa độ GPS thành một địa điểm cụ thể với độ chính xác cao, cho phép các ứng dụng xác định ngay lập tức liệu người dùng đang ở một quán cà phê địa phương, bên trong cửa hàng bách hóa Macy’s hay đứng trong Công viên Trung tâm. API Tìm kiếm & Dữ liệu Địa điểm (Place Search & Data APIs) chuyển đổi cách các ứng dụng khám phá địa điểm bằng cách cung cấp khả năng lọc chi tiết vượt ra ngoài các tìm kiếm dựa trên khoảng cách đơn giản. Các nhà phát triển có thể lọc các địa điểm theo danh mục cụ thể (chỉ tìm nhà hàng, công viên hoặc điểm du lịch), áp dụng các ràng buộc dựa trên thuộc tính (như phạm vi giá hoặc tiện ích đặc biệt), xem xét các yếu tố thời gian (như trạng thái hoạt động hiện tại) và cân bằng giữa khoảng cách với mức độ liên quan để có kết quả thực sự theo bối cảnh. Mỗi địa điểm được trả về đi kèm với các thuộc tính bối cảnh phong phú, bao gồm ảnh, đánh giá, xếp hạng chất lượng và dữ liệu phổ biến theo thời gian thực.
Khi được tích hợp với Amazon Bedrock Agents, API Foursquare Places cho phép tạo ra các ứng dụng hiểu được toàn bộ bối cảnh vị trí của người dùng—dẫn đến những trải nghiệm phù hợp, kịp thời và được cá nhân hóa.
Tổng quan về giải pháp
Để thể hiện sức mạnh của việc thêm nhận thức vị trí vào Amazon Bedrock Agents, chúng tôi đã tạo ra một kiến trúc đơn giản kết hợp một agent Amazon Bedrock với API Foursquare Places và một API Thời tiết. Bằng cách kết hợp các khả năng này, chúng ta có thể tạo ra các trải nghiệm người dùng độc đáo được tùy chỉnh theo bối cảnh vị trí của người dùng. Sơ đồ sau đây cho thấy cách chúng tôi thiết kế agent:
Trong quy trình giải pháp, người dùng tương tác với agent thông qua giao diện web Streamlit. Ứng dụng web sử dụng logic ứng dụng để gọi agent Amazon Bedrock trên đám mây. agent biết về các công cụ vị trí và thời tiết, mặc dù các công cụ này được lưu trữ cục bộ trong ứng dụng. Khi các công cụ được agent gọi, một phản hồi đặc biệt để tạm dừng và chuyển quyền điều khiển lại cho ứng dụng được gửi đến logic ứng dụng, logic này sẽ gọi công cụ và cung cấp phản hồi từ công cụ trong lần gọi thứ hai của agent. Ngoài các công cụ, agent còn có các hướng dẫn cơ bản về loại tính cách nó nên có và các hành vi nó nên hỗ trợ.
Hãy cùng khám phá một ví dụ về tương tác ngắn với agent, nơi chúng ta hỏi liệu có công viên nào gần đây và một nhà hàng được đề xuất gần công viên để mua đồ ăn mang đi.
Hình ảnh chụp màn hình sau cho thấy tương tác đầu tiên với agent, xác định vị trí công viên gần đó bằng cách sử dụng API Foursquare được gọi bởi agent:
Trong ví dụ này, bạn có thể thấy agent gửi các sự kiện trung gian đến người dùng, thông báo về các hành động đang diễn ra (gọi mô hình, gọi công cụ, suy nghĩ, v.v.).
Hình ảnh chụp màn hình sau cho thấy danh sách các nhà hàng được đề xuất bởi API Foursquare gần công viên:
Trong ví dụ này, agent gọi API dựa trên dữ liệu đầu vào của người dùng, và giao diện Streamlit kết nối đầu ra từ Foursquare với một bản đồ.
Trong phần tiếp theo, chúng tôi sẽ trình bày chi tiết cách bạn có thể xây dựng agent trong tài khoản của mình và bắt đầu.
Điều kiện tiên quyết
Để triển khai giải pháp này, bạn nên có tài khoản AWS với các quyền cần thiết.
Bạn cũng sẽ cần khóa API dịch vụ FourSquare để cho phép agent AI của bạn truy cập các điểm cuối API FourSquare. Nếu bạn chưa có, hãy làm theo hướng dẫn trên tài liệu Foursquare – Quản lý các khóa API dịch vụ của bạn để tạo một hướng dẫn. Bạn sẽ cần phải đăng nhập vào tài khoản nhà phát triển Foursquare của mình hoặc tạo tài khoản nếu bạn không có (tạo tài khoản cơ bản là miễn phí và bao gồm tín dụng khởi động cho dự án của bạn). Hãy chắc chắn sao chép khóa API dịch vụ khi tạo vì bạn sẽ không thể nhìn thấy nó nữa.
Xây dựng agent
Mã nguồn cho agent Foursquare được cung cấp dưới dạng mã nguồn mở trong GitHub repository sau. Hãy thực hiện các bước sau để thiết lập agent trong thư mục cục bộ của bạn từ mã nguồn:
- Sao chép kho lưu trữ vào một thư mục cục bộ.
- Thiết lập biến môi trường cho khóa API Foursquare của bạn:
export FOURSQUARE_SERVICE_TOKEN=<Foursquare API token> - Thiết lập biến môi trường cho thông tin xác thực AWS của bạn:
export AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID>
export AWS_SECRET_ACCESS_KEY=<SECRET_ACCESS_KEY>
- Cài đặt các yêu cầu:
pip install requirements.txt - Khởi động giao diện Streamlit:
streamlit run agent_ui.py
Phương pháp tốt nhất
Khi tạo một agent, chúng tôi khuyến nghị bắt đầu với một tập dữ liệu thử nghiệm. Hãy cân nhắc các input có thể xảy ra và các đầu ra được chấp nhận. Sử dụng các cuộc hội thoại mẫu này để kiểm tra agent bất cứ khi nào có thay đổi. Ngoài ra, Amazon Bedrock Agents cho phép bạn cấu hình guardrails để bảo vệ chống lại các input độc hại hoặc các loại hội thoại mà bạn không muốn sử dụng cho trải nghiệm người dùng. Chúng tôi khuyến nghị sử dụng các guardrails phù hợp cho các trường hợp sử dụng sản xuất. Để tìm hiểu thêm, xem Amazon Bedrock Guardrails.
Dọn dẹp
Khi bạn hoàn tất việc sử dụng giải pháp, hãy xóa mọi tài nguyên bạn đã tạo để tránh các chi phí tiếp tục phát sinh.
Kết luận
Các agent cung cấp một cơ chế để tự động hóa công việc thay mặt cho khách hàng của bạn, thông qua giao diện trò chuyện hoặc các input khác. Bằng cách kết hợp khả năng tự động hóa của agent và API nhận biết vị trí từ Foursquare, bạn có thể tạo ra các giao diện người dùng và trải nghiệm mạnh mẽ, làm hài lòng khách hàng với mức độ cá nhân hóa mới. Với Amazon Bedrock Agents, bạn có thể xây dựng một giải pháp tập trung vào đám mây, sử dụng các mô hình nền tảng mạnh mẽ trên Amazon Bedrock để thúc đẩy các trải nghiệm này.
Hãy thử giải pháp này cho trường hợp sử dụng của riêng bạn và chia sẻ phản hồi của bạn trong phần bình luận.
Về các tác giả
| John Baker là Kỹ sư Phát triển Phần mềm Chính (Principal SDE) tại AWS, nơi anh làm việc với Amazon Bedrock và cụ thể là Amazon Bedrock Agents. Anh đã làm việc tại Amazon hơn 10 năm và đã tham gia vào các dự án liên quan đến AWS, Alexa và Amazon.com. Trong thời gian rảnh, John thích trượt tuyết và các hoạt động ngoài trời khác trên khắp vùng Tây Bắc Thái Bình Dương. | |
| Mark Roy là Kiến trúc sư Học máy Chính (Principal Machine Learning Architect) tại AWS, hỗ trợ khách hàng thiết kế và xây dựng các giải pháp trí tuệ nhân tạo tạo sinh. Từ đầu năm 2023, anh tập trung dẫn dắt các nỗ lực kiến trúc giải pháp cho việc ra mắt Amazon Bedrock, sản phẩm trí tuệ nhân tạo tạo sinh hàng đầu của AWS dành cho các nhà phát triển. Công việc của Mark bao gồm nhiều trường hợp sử dụng, với trọng tâm chính là trí tuệ nhân tạo tạo sinh, các agent và mở rộng học máy trên toàn doanh nghiệp. Anh đã hỗ trợ các công ty trong lĩnh vực bảo hiểm, dịch vụ tài chính, truyền thông và giải trí, chăm sóc sức khỏe, tiện ích và sản xuất. Trước khi gia nhập AWS, Mark là một kiến trúc sư, nhà phát triển và lãnh đạo công nghệ trong hơn 25 năm, bao gồm 19 năm trong lĩnh vực dịch vụ tài chính. Mark sở hữu sáu chứng chỉ AWS, bao gồm Chứng chỉ Chuyên sâu về Học máy. | |
| Vikram Gundeti hiện là Giám đốc Công nghệ (CTO) của Foursquare, nơi anh dẫn dắt chiến lược kỹ thuật, ra quyết định và nghiên cứu cho Nền tảng Không gian địa lý của công ty. Trước khi gia nhập Foursquare, Vikram là Kỹ sư Chính tại Amazon, nơi anh đã để lại dấu ấn với tư cách là một kỹ sư sáng lập trong nhóm Amazon Alexa. | |
| Nate Folkert là Kỹ sư Cấp cao. (Senior Staff Engineer) tại Foursquare, nơi anh đã làm việc từ khi nhận thấy nó đang trở thành xu hướng gần đó khi check-in tại một quán cà phê ở Soho 14 năm trước. Anh xây dựng API máy chủ cho Swarm và hỗ trợ các dự án đặc biệt. Ngoài công việc, anh thích khám phá thế giới (tất nhiên là với Swarm, vậy có thực sự là ngoài công việc không?) và hiện đang bị ám ảnh với việc tìm kiếm tất cả các địa điểm quay phim ngoài đời thực được sử dụng trong Severance của Apple TV. |