Tạo chatbot với CHAT GPT sử dụng C#
Trong hướng dẫn này, chúng ta sẽ đi sâu vào quá trình xây dựng chatbot bằng ChatGPT và C#. Chúng tôi sẽ đề cập đến mọi thứ, từ thiết lập quyền truy cập API ChatGPT đến triển khai chatbot của bạn. Bắt đầu nào!
Tin đọc nhiều
Trong IIS, bạn có thể tạo các trang web, ứng dụng và thư mục ảo để chia sẻ thông tin với người dùng qua Internet, mạng nội bộ hoặc mạng phụ. Mặc dù các khái niệm này đã tồn tại trong các phiên bản trước của IIS, một số thay đổi trong IIS 7 trở lên ảnh hưởng đến định nghĩa và chức năng của các khái niệm này. Quan trọng nhất, các trang web, ứng dụng và thư mục ảo giờ đây hoạt động cùng nhau theo mối quan hệ phân cấp như những khối xây dựng cơ bản để lưu trữ nội dung trực tuyến và cung cấp dịch vụ trực tuyến.
Bài viết này cung cấp tổng quan nhanh về các ứng dụng trong IIS 6.0 để bạn có thể hiểu rõ hơn về sự khác biệt được giới thiệu trong IIS 7. Sau đó, nó giải thích các khái niệm về trang web, ứng dụng và thư mục ảo trong IIS và giới thiệu phần <sites> trong cấu hình.
IIS 7 trở lên chính thức hóa các khái niệm về trang web, ứng dụng và thư mục ảo. Các thư mục và ứng dụng ảo hiện là các đối tượng riêng biệt và chúng tồn tại trong mối quan hệ phân cấp trong lược đồ cấu hình IIS. Tóm lại, một trang web chứa một hoặc nhiều ứng dụng, một ứng dụng chứa một hoặc nhiều thư mục ảo và một thư mục ảo ánh xạ tới một thư mục thực trên máy tính.
Như trong IIS 6.0, một trang web chứa tất cả nội dung, cả nội dung tĩnh và động, được liên kết với trang web đó. Tuy nhiên, mỗi trang web phải chứa ít nhất một ứng dụng, ứng dụng này được đặt tên là ứng dụng gốc. Và mỗi ứng dụng (bao gồm cả ứng dụng gốc) phải chứa ít nhất một thư mục ảo, thư mục này được đặt tên là thư mục ảo gốc. Các đối tượng này kết hợp với nhau để tạo thành trang web.
Ngoài ra, trong IIS 7 trở lên, khái niệm ứng dụng giờ đây có ý nghĩa đối với cả IIS và các công nghệ mở rộng chức năng IIS. Ứng dụng là một đối tượng quan trọng đối với máy chủ trong thời gian chạy. Điều này là do các đường ống xử lý yêu cầu IIS và ASP.NET đã hợp nhất trong IIS 7 trở lên để nội dung có thể tận dụng chức năng được cung cấp trước đó chỉ dành cho các ứng dụng mã được quản lý. Ví dụ: mỗi ứng dụng mã được quản lý chạy trong Miền ứng dụng (AppDomain). Một ứng dụng có thể có một số thư mục ảo và mỗi thư mục sẽ được cung cấp bởi cùng một AppDomain như ứng dụng mà chúng thuộc về.
Các phần sau giải thích chi tiết hơn về các trang web, ứng dụng, thư mục ảo và cấu hình liên quan của chúng.
Trang web là một vùng chứa các ứng dụng và thư mục ảo, và bạn có thể truy cập nó thông qua một hoặc nhiều ràng buộc duy nhất.
Ràng buộc bao gồm hai thuộc tính quan trọng đối với giao tiếp: giao thức ràng buộc và thông tin ràng buộc. Giao thức ràng buộc xác định giao thức mà giao tiếp giữa máy chủ và máy khách xảy ra. Thông tin ràng buộc xác định thông tin được sử dụng để truy cập trang web. Ví dụ, giao thức ràng buộc của một trang Web có thể là HTTP hoặc HTTPS và thông tin ràng buộc là sự kết hợp của địa chỉ IP, cổng và tiêu đề máy chủ tùy chọn.
Một trang web có thể chứa nhiều ràng buộc nếu trang web yêu cầu các giao thức hoặc thông tin ràng buộc khác nhau. Trong các phiên bản trước của IIS, chỉ có các giao thức HTTP và HTTPS được hỗ trợ. Ví dụ: một trang Web có thể có cả liên kết HTTP và liên kết HTTPS khi các phần của trang web yêu cầu giao tiếp an toàn qua HTTPS.
Trong IIS 7 trở lên, các ràng buộc có thể áp dụng cho bất kỳ giao thức nào. Dịch vụ kích hoạt quy trình Windows (WAS) là dịch vụ mới giúp IIS có thể sử dụng các giao thức bổ sung. Dịch vụ này vẫn giữ lại mô hình quy trình IIS 6.0 quen thuộc, chẳng hạn như nhóm ứng dụng và kích hoạt quy trình dựa trên tin nhắn, cũng như các tính năng lưu trữ, chẳng hạn như bảo vệ lỗi nhanh chóng, theo dõi sức khỏe và tái chế. Tuy nhiên, WAS loại bỏ sự phụ thuộc vào HTTP khỏi kiến trúc kích hoạt. Điều này rất hữu ích cho các công nghệ cung cấp giao tiếp ứng dụng với ứng dụng trong Dịch vụ Web qua các giao thức chuẩn. Mô hình lập trình Windows Communication Foundation (WCF) là một trong những công nghệ có thể cho phép giao tiếp qua các giao thức tiêu chuẩn của Transmission Control Protocol (TCP), Microsoft Message Queueing (MSMQ) và Named Pipes. Điều này cho phép các ứng dụng sử dụng giao thức truyền thông tận dụng các tính năng của IIS, chẳng hạn như tái chế quy trình, bảo vệ lỗi nhanh chóng và cấu hình mà trước đây chỉ có sẵn cho các ứng dụng dựa trên HTTP. Để biết thêm thông tin về mô hình lập trình WCF, hãy xem Windows Communication Foundation trên MSDN.
Ngoài việc chứa các ứng dụng (chứa các thư mục ảo) và chỉ định các ràng buộc, các cài đặt cấu hình sau thuộc về trang web:
Giới hạn: định cấu hình cài đặt để giới hạn lượng băng thông, số lượng kết nối hoặc lượng thời gian được phép cho các kết nối đến một trang web.
Ghi nhật ký: cấu hình cài đặt để xử lý và lưu trữ các tệp nhật ký cho trang web.
Nhật ký theo dõi yêu cầu không thành công: định cấu hình cài đặt để ghi nhật ký theo dõi yêu cầu không thành công cho trang web.
Ứng dụng là một nhóm các tệp cung cấp nội dung hoặc cung cấp dịch vụ qua các giao thức, chẳng hạn như HTTP. Khi bạn tạo một ứng dụng trong IIS, đường dẫn của ứng dụng sẽ trở thành một phần của URL của trang web.
Trong IIS 7 trở lên, mỗi trang web phải có một ứng dụng được đặt tên là ứng dụng gốc hoặc ứng dụng mặc định. Tuy nhiên, một trang web có thể có nhiều hơn một ứng dụng. Ví dụ: bạn có thể có một trang web thương mại trực tuyến có một số ứng dụng, chẳng hạn như ứng dụng giỏ hàng cho phép người dùng thu thập các mặt hàng trong khi mua sắm và ứng dụng đăng nhập cho phép người dùng nhớ lại thông tin thanh toán đã lưu khi họ mua hàng.
Ngoài việc thuộc về một trang web, một ứng dụng còn thuộc về một nhóm ứng dụng, nó cách ly ứng dụng với các ứng dụng trong nhóm ứng dụng khác trên máy chủ. Trong trường hợp ứng dụng mã được quản lý, hãy đảm bảo liên kết ứng dụng của bạn với một nhóm ứng dụng đang chạy phiên bản .NET Framework mà ứng dụng của bạn yêu cầu.
Như được mô tả trong phần Trang web của bài báo này, IIS hỗ trợ HTTP và HTTPS theo mặc định, nhưng bạn có thể sử dụng các giao thức bổ sung. Đối với mỗi trang web, bạn chỉ định một hoặc nhiều ràng buộc để giao tiếp và truy cập nội dung trong trang web. Để ứng dụng có thể giao tiếp bằng cách sử dụng một giao thức được chỉ định trong ràng buộc của trang mẹ, bạn phải kích hoạt giao thức. Để thực hiện việc này, hãy chỉ định giao thức trong thuộc tính enableProtocols cho ứng dụng và đảm bảo rằng bạn có bộ điều hợp trình nghe thích hợp trên máy chủ và được chỉ định trong phần <listenerAdapters> trong cấu hình.
Thư mục ảo là tên thư mục (còn được gọi là đường dẫn) mà bạn chỉ định trong IIS và ánh xạ tới một thư mục vật lý trên máy chủ cục bộ hoặc từ xa. Sau đó, tên thư mục trở thành một phần của URL của ứng dụng và người dùng có thể yêu cầu URL từ trình duyệt để truy cập nội dung trong thư mục thực, chẳng hạn như trang Web hoặc danh sách các thư mục và tệp bổ sung. Nếu bạn chỉ định tên khác cho thư mục ảo với thư mục thực, người dùng sẽ khó phát hiện ra cấu trúc tệp vật lý thực trên máy chủ của bạn hơn vì URL không ánh xạ trực tiếp đến thư mục gốc của trang web.
Trong IIS 7 trở lên, mỗi ứng dụng phải có một thư mục ảo, được đặt tên là thư mục ảo gốc và ánh xạ ứng dụng tới thư mục vật lý chứa nội dung của ứng dụng. Tuy nhiên, một ứng dụng có thể có nhiều hơn một thư mục ảo. Ví dụ: bạn có thể sử dụng thư mục ảo khi bạn muốn ứng dụng của mình bao gồm hình ảnh từ một vị trí khác trong hệ thống tệp, nhưng bạn không muốn di chuyển tệp hình ảnh vào thư mục thực được ánh xạ tới thư mục ảo gốc của ứng dụng.
Theo mặc định, IIS sử dụng cấu hình từ các tệp Web.config trong thư mục vật lý mà thư mục ảo được ánh xạ tới, cũng như trong bất kỳ thư mục con nào trong thư mục vật lý đó. Nếu bạn không muốn sử dụng tệp Web.config trong thư mục con, hãy chỉ định false cho thuộc tính allowSubDirConfig trên thư mục ảo.
Theo tùy chọn, khi bạn cần chỉ định thông tin xác thực và phương thức để truy cập thư mục ảo, bạn có thể chỉ định giá trị cho tên người dùng, mật khẩu và thuộc tính logonMethod.
Bây giờ mình sẽ tạo 1 file index.html trong 1 thư mục như sau.
- Click chuột phải vào site parent để tạo virtual directory
- Điền alias name. Và trỏ vào thư mục chứa file build. Ở đây mình điền alias name là abc
Click Ok để hoàn tất.
Và kết quả ta được như hình
Nếu là site alias như 1 application thì chúng ta tiến hành convert to application
Kết thúc.
Nguồn: sưu tầm và tổng hợp
Trong hướng dẫn này, chúng ta sẽ đi sâu vào quá trình xây dựng chatbot bằng ChatGPT và C#. Chúng tôi sẽ đề cập đến mọi thứ, từ thiết lập quyền truy cập API ChatGPT đến triển khai chatbot của bạn. Bắt đầu nào!
Hiện nay nhiều người có xây dựng cơ sở dữ liệu trên server và kết nối tới để làm việc cho tiện. Nên mình chia sẻ bài viết này cho người mới nhé.