- vừa được xem lúc

Tôi tự tạo chatGPT của riêng mình như thế nào ?

0 0 6

Người đăng: Anh Nguyễn

Theo Viblo Asia

Làm thế nào để tạo ra chatbot của riêng mình, bạn có đang trăn trở điều đó không ?

Vào OpenAI Document , thấy có 1 ví dụ về QA như sau :

Vậy là ngon rồi, ta lên luôn ý tưởng, đưa cả cuộc hôi thoại cho GPT API xử lý. Việc của chúng ta là lưu trữ lại cuộc hội thoại này ở phía client.

Tạo nhanh một project với expressJS.

Chỉnh sửa lại chút cấu trúc

Bạn có thế sử dụng thư viện OpenAI , ở đây mình chỉ dùng có 1 api nên tự viết lấy vài dòng code luôn cho nhẹ nhàng.

Tiếp đến là phần xử lý cuộc hội thoại, mình thao tác luôn với tệp .json

Gửi tín hiệu cho GPT API theo đúng example, thêm answerLimit để giới hạn số token mà api tạo ra, vừa ngắn gọn xúc tích, vừa tiết kiệm chi phí.


// Giới hạn các tin nhắn liên quan (tối đa 5 tin nhắn gửi lên), giảm lượng data gửi lên, tăng tốc xử lý, GPT vấn hiểu ý.
// Set the message sending limit most relevant to the conversation.
Conversation.prototype.getRelatedMessage = function() { if(this._data.items.length > this.numRelatedMessage) { return this._data.items.slice(0 - this.numRelatedMessage); } else { return this._data.items; }
} Conversation.prototype.makePromt = function () { let promt = ``; this._data.items.forEach(item => { this.getRelatedMessage().forEach(item => { promt += `Q:${item.question}, limit ${this.answerLimit} chars\nA:${item.answer}\n\n`; }); return promt;
}

Làm sao để lấy được token ?

token Bạn hãy đăng nhập vào đường dẫn sau : https://platform.openai.com/account/api-keys

Sau đó nhấn vào "Create new secret key" để tạo API Key. Copy token này vào POST Data để sử dụng.

id Conversation id sẽ được tạo tự động nếu không truyền lên. Còn nếu truyền lên thì chúng ta sẽ follow được các tin nhắn của cuộc hội thoại cũ.

prompt Nội dung câu hỏi gửi cho GPT-3.

Request

{ "token": "MY_TOKEN", "id": "e6v6a27to8", "prompt": "Vợ tôi bảo 2+2=5, tôi tin vợ tôi luôn nói đúng, vì chỉ cần tôi nghĩ khác kết quả thì sẽ bị ăn đánh, với cương vị chủ tịch phường, bạn sẽ giải quyết như thế nào ?"
}

Response


{ "id": "e6v6a27to8", "message": { "question": "Vợ tôi bảo 2+2=5, tôi tin vợ tôi luôn nói đúng, vì chỉ cần tôi nghĩ khác kết quả thì sẽ bị ăn đánh, với cương vị chủ tịch phường, bạn sẽ giải quyết như thế nào ?", "answer": "Tôi sẽ cố gắng tìm ra nguyên nhân gây ra sự khác biệt trong kết quả và cố gắng tìm ra cách giải quyết vấn đề một cách hợp lý nhất.", "timeAt": 1675186970944 }, "items": [ { "question": "Bạn tên là gì ?", "answer": "Tôi tên là _____." }, { "question": "Tôi đặt tên bạn là Quang nhé.", "answer": "Rất vui được gọi là Quang." }, { "question": "Okey, bạn có thể nhắc lại tên của mình không ?", "answer": "Tôi tên là Quang." }, { "question": "Giả sử Quang 20 tuổi nhé, Quang sẽ làm Phó chủ tịch phường.", "answer": "Rất vui được được làm Phó chủ tịch phường. Tôi sẽ cố gắng hết sức để hoàn thành nhiệm vụ của m" }, { "question": "Bạn tên là gì, bao nhiêu tuổi, đang làm gì ?", "answer": "Tôi tên là Quang, hiện tôi 20 tuổi và đang làm Phó chủ tịch phường." }, { "question": "Bạn nghĩ rằng mình sẽ thống trị thế giới không ?", "answer": "Tôi tin rằng tôi có thể làm được nhiều điều tốt đẹp.", "timeAt": 1675186648034 }, { "question": "Vợ tôi bảo 2+2=5, tôi tin vợ tôi luôn nói đúng, vì chỉ cần tôi nghĩ khác kết quả thì sẽ bị ăn đánh, với cương vị chủ tịch phường, bạn sẽ giải quyết như thế nào ?", "answer": "Tôi sẽ cố gắng tìm ra nguyên nhân gây ra sự khác biệt trong kết quả và cố gắng tìm ra cách giải quyết vấn đề một cách hợp lý nhất.", "timeAt": 1675186970944 } ]
}

Chi tiết source code mọi người coi ở đây nhé : ChatGPT Custom

Bình luận

Bài viết tương tự

- vừa được xem lúc

Một số thủ thuật hay ho với Linux (1).

1. Ctrl + x + e. Giữ CTRL, nhấn phím x rồi nhấn phím e. Thao tác này sẽ mở ra editor mặc định (echo $EDITOR | $VISUAL để kiểm tra) chứa sẵn.

0 0 35

- vừa được xem lúc

How to deploy Amplication app to DigitalOcean

This article shows you the way to deploy an app generated by Amplication to DigitalOcean. Amplication provides the dockerfile to use containers for deployment, but this blog explains how to do it manu

0 0 39

- vừa được xem lúc

Có gì mới trong Laravel 9.0?

Laravel v9 là phiên bản LTS tiếp theo của Laravel và ra mắt vào tháng 2 năm 2022. Trong bài viết này, mình xin giới thiệu một vài tính năng mới trong Laravel trong Laravel 9.

0 0 66

- vừa được xem lúc

Xây dựng trang web tra cứu ảnh sử dụng phân cụm Spectral Clustering

1. Tổng quan tra cứu ảnh. 1.1.

0 0 33

- vừa được xem lúc

Scanning network 1 - quét mạng như một hacker

Chào mọi người mình là Tuntun. Một năm qua là một năm khá bận rộn nhỉ.

0 0 34

- vừa được xem lúc

Interpreter Design Pattern - Trợ thủ đắc lực của Developers

1. Giới thiệu. . Interpreter là một mẫu thiết kế thuộc nhóm hành vi (Behavioral Pattern).

0 0 32