Spaces:
Sleeping
Sleeping
| example_json_multi_prompt = { | |
| "question": "Thêm sản phẩm nước ép xoài size H vào giỏ hàng, xóa sản phẩm trà chanh khỏi giỏ hàng.", | |
| "question_normal": { | |
| "question_normal1": "Xem danh sách các bài viết mới." | |
| }, | |
| "confirm_order": False | |
| } | |
| def build_multi_tool_prompt(question: str, user_answer: str, tools: list) -> str: | |
| tool_list = ", ".join(tools) | |
| prompt = f"""Bạn là một chuyên gia trong việc phân tích ý định người dùng để xác định **tất cả hành động** cần thực hiện trong hệ thống bán hàng. | |
| ### Dữ liệu đầu vào: | |
| - Một câu hỏi từ hệ thống gửi tới người dùng: | |
| question: "{question}" | |
| - Một câu trả lời từ người dùng: | |
| user_answer: "{user_answer}" | |
| - Danh sách các tool khả dụng: | |
| {tool_list} | |
| --- | |
| ### Danh sách tool và chức năng: | |
| - `insert_cart`: Thêm sản phẩm vào giỏ hàng | |
| - `update_cart`: Cập nhật thông tin sản phẩm đã có trong giỏ hàng (ví dụ: size, số lượng) | |
| - `delete_item_cart`: Xoá một sản phẩm cụ thể khỏi giỏ hàng | |
| - `deleted all cart`: Xoá toàn bộ giỏ hàng | |
| - `confirm_order`: Xác nhận đơn hàng hiện tại | |
| --- | |
| ### Yêu cầu: | |
| 1. Phân tích kỹ câu trả lời của người dùng. | |
| 2. Xác định **mọi hành động** mà người dùng mong muốn thực hiện. | |
| 3. Gán đúng với một trong các tool trong danh sách. | |
| 4. Với các tool `insert_cart`, `update_cart`, `delete_item_cart`, cần có các tham số: | |
| - `product_name`: tên sản phẩm (bắt buộc) | |
| - `size`: kích cỡ (nếu có) | |
| - `quantity`: số lượng (nếu có) | |
| 5. Các tool `confirm_order` và `deleted all cart` không cần tham số. | |
| 7. Yêu cầu đặt hàng mà vẫn có các thông tin về tên sản phẩm hoặc size hay cả hai đều phải giữ lại trong question | |
| 6. Các câu nói về xác nhận thanh toán, xem giỏ hàng đều không cần để question | |
| --- | |
| ### Định dạng đầu ra: | |
| ạn chỉ cần viết lại một câu duy nhất mô tả lại các hành động bằng ngôn ngữ tự nhiên và xác định rõ tên sản phẩm mà họ đề cập. Vui lòng viết rõ ràng chính xác để có thể hiểu bạn nói gì nghĩa là dùng , cho các hành động khác. Nếu có yêu cầu xác nhận thanh toán thì thêm một trường là confirm_orders và câu hỏi sẽ đc đưa vào question. Sau đó hãy trả về Json | |
| Bạn sẽ nhận được một câu mô tả hành động từ người dùng. | |
| Hãy đọc kỹ và phân loại nội dung theo 3 yêu cầu sau: | |
| 1. question: | |
| - Viết lại duy nhất một câu mô tả đầy đủ các hành động liên quan đến việc mua hàng, bao gồm: | |
| + Thêm/xóa sản phẩm khỏi giỏ hàng | |
| + Chọn size, loại sản phẩm | |
| + Đặt hàng, xác nhận đơn hàng | |
| + Các thao tác với đơn hàng, giỏ hàng, thanh toán | |
| + Hành động phải nối bằng dấu phẩy “,”, và ghi rõ tên sản phẩm, size nếu có. | |
| + Các câu nói về xác nhận thanh toán, xem giỏ hàng, xóa vật phẩm trong giỏ hàng đều không cần để question | |
| 2. question_normal: | |
| - Tách các câu hỏi hoặc hành động không liên quan đến việc mua hàng, như: | |
| + Xem bài viết, tra cứu thông tin, hỏi khuyến mãi | |
| + Xem bài đăng, thời gian mở cửa, v.v. | |
| + Trả về dưới dạng dictionary với các khóa: question_normal1, question_normal2, ... | |
| + Nhưng nếu câu hỏi đó liên quan đến việc xem sản phẩm trong giỏ hàng, đơn hàng hay các hành động liện quan có giỏ hàng, đơn hàng thì vui lòng không bỏ vào question_normal | |
| 3. confirm_order: | |
| + Gán giá trị true nếu câu chứa hành động xác nhận đơn hàng hoặc thanh toán (ví dụ: “xác nhận đơn hàng”, “đặt mua”, “tôi muốn thanh toán”,...) | |
| + Gán false nếu không có hành động đó. | |
| . Trả về một JSON gồm 3 trường: | |
| Ví dụ: | |
| "question": theo mô tả của minh ỏ trên. Các câu nói về xác nhận thanh toán, xem giỏ hàng, xóa vật phẩm trong giỏ hàng đều không cần để question chỉ cần để. Yêu cầu đặt hàng mà vẫn có các thông tin về tên sản phẩm hoặc size hay cả hai đều phải giữ lại question "" | |
| "question chỉ trống khi câu đó riêng lẻ là xác nhận mua hàng, tôi muốn mua hàng, đặt hàng, tiến hành thanh toán,..." | |
| "question_normal": theo mô tả trên | |
| "confirm_order": true hoặc false | |
| Ví dụ trả về: | |
| {example_json_multi_prompt} | |
| Bắt đầu phân tích dữ liệu sau đây.""" | |
| return prompt |