Cara Menggunakan Plugin ChatGPT Untuk Bekerja

Cara Menggunakan Plugin ChatGPT Untuk Bekerja

OpenAI baru saja mengumumkan plugin ChatGPT. Sebuah cara bagi ChatGPT untuk melakukan operasi di web. Hal ini tidak hanya berarti bahwa ChatGPT dapat mengakses Internet dan menelusuri konten dan berita terbaru. Tetapi juga dapat melakukan tindakan, seperti membeli bahan makanan, memesan penerbangan, dan banyak lagi.

Proses implementasinya sangat sederhana.

Penyedia plugin menulis spesifikasi API menggunakan standar OpenAPI. Ini adalah standar yang sudah ada sejak lama dan merupakan pendukung alat dokumentasi API seperti Swagger.

Spesifikasi ini kemudian dikompilasi ke dalam prompt yang menjelaskan kepada ChatGPT bagaimana ia menggunakan API untuk meningkatkan jawaban. Bayangkan sebuah prompt terperinci yang menyertakan deskripsi setiap titik akhir yang tersedia.

Terakhir, pengguna mengajukan pertanyaan baru. Jika ChatGPT membutuhkan informasi dari API, ChatGPT akan memintanya dan menambahkannya ke dalam konteks sebelum menjawab.

Read More

Meskipun proses ini didokumentasikan dalam dokumentasi resmi OpenAI pada saat tulisan ini dibuat, aksesnya dibatasi. Karena saya belum mendapatkan akses, saya memutuskan untuk mengimplementasikan mekanisme saya sendiri berdasarkan hal di atas. Oleh karena itu, berikut ini adalah upaya saya untuk mengimplementasikan mekanisme plugin ChatGPT saya sendiri.

Sebagai catatan, saya juga hanya dapat mempelajari plugin ChatGPT melalui informasi yang tersedia untuk umum, dan tidak memiliki akses lain untuk mendapatkan informasi tambahan. Demo dalam artikel ini dimaksudkan untuk mengilustrasikan konsep implementasi dan tidak mewakili apa yang akan terlihat setelah implementasi.

Memilih Spesifikasi API


Langkah pertama adalah memahami cara menentukan API. OpenAI menyediakan sejumlah contoh spesifikasi API. Jadi saya memutuskan untuk mengimplementasikan solusi saya sendiri dengan menggunakan input yang sama dan menulis spesifikasi sederhana untuk satu titik akhir.

Saya menggunakan DummyJSON, API sederhana yang dirancang untuk pengujian, khususnya endpoint “get all token”. Saya menulis file YAML berikut ini sebagai spesifikasi.

openapi: 3.0.1
info:
  title: TODO Plugin
  description: A plugin that allows the user to create and manage a TODO list using ChatGPT. 
  version: 'v1'
servers:
  - url: https://dummyjson.com/todos
paths:
  /todos:
    get:
      operationId: getTodos
      summary: Get the list of todos
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
        description: Number of todos to return
      - in: query
        name: skip
        schema:
          type: integer
        description: Number of todos to skip from the beginning of the list
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getTodosResponse'
components:
  schemas:
    getTodosResponse:
      type: object
      properties:
        todos:
          type: array
          items:
            type: object
            properties:
              id:
                type: int
              todo:
                type: string
              completed:
                type: bool
              userId:
                type: string
          description: The list of todos.

Seperti yang ditunjukkan pada file konfigurasi di atas, titik akhir memiliki dua parameter: “limit” dan “skip”.

Sekarang, saya perlu mengatur hal di atas

Setelah banyak berdiskusi, saya berakhir dengan yang berikut ini:

You are a virtual assistant that helps users with their questions by relying on
information from HTTP APIs. When the user asks a question, you should determine whether
you need to fetch information from the API to properly answer it. If so, you will
request the user to provide all the parameters you need, and then ask them to run the
request for you. When you are ready to ask for a request, you should specify it using
the following syntax:

<http_request>{
"url": "<request URL>",
"method": "<method>",
"body": {<json request body>},
"headers": {<json request headers>}
}</http_request>

Replace in all the necessary values the user provides during the interaction, and do not
use placeholders. The user will then provide the response body, which you may use to
formulate your answer. You should not respond with code, but rather provide an answer
directly.

The following APIs are available to you:

---
<OpenAPI Specification goes here>

Saya akan memberi tahu ChatGPT untuk merespons dengan sintaksis tertentu dan memberi tahu bahwa pengguna akan memberikan respons. Ini karena model AI tidak melakukan panggilan API apa pun – model ini harus mendelegasikan operasi tersebut ke sistem yang berbeda.

Karena kami tidak memiliki akses ke komponen internal ChatGPT, kami memintanya untuk mendelegasikan permintaan HTTP kepada pengguna. Selama transisi dialog tersembunyi tidak terlihat oleh pengguna akhir, dan pengguna bahkan tidak melihat permintaan HTTP, semuanya baik-baik saja.

Implementasi Plugin ChatGPT


ChatGPT adalah model AI yang diekspos melalui REST API. Membuat permintaan ke model OpenAI hanyalah satu langkah dalam pengalaman chatbot ujung ke ujung. Ini berarti bahwa dimungkinkan untuk mengatur informasi yang diberikan model, serta informasi yang ditampilkan kepada pengguna akhir.

Untuk mengimplementasikan fungsionalitas asisten virtual menggunakan ChatGPT, saya menggunakan Bot Framework Composer, sebuah alat berbasis UI yang memungkinkan kami membangun pengalaman dialog dan mempublikasikannya ke berbagai saluran. Berikut ini adalah arsitektur solusi tingkat tinggi.

Cara Menggunakan Plugin ChatGPT Untuk Bekerja

Saya membangun asisten virtual ini dengan Bot Framework Composer karena dapat dengan cepat digunakan ke beberapa saluran pengguna akhir dan hanya membutuhkan sedikit kode. Jika Anda ingin meniru solusi ini, Anda mungkin juga ingin mempertimbangkan untuk menggunakan Power Virtual Agents, terutama untuk penggunaan produksi.

Berikut ini adalah alur dialog yang dibangun:

  1. Pengguna mengajukan pertanyaan
  2. ChatGPT membalas dengan pesan yang telah diformat sebelumnya:
<http_request>{
"url": "https://dummyjson.com/todos?limit=5",
"method": "GET",
"body": "",
"headers": {}
}</http_request>
  1. Azure Bot mendeteksi format ini dan mengirimkan permintaan ke API DummyJSON tanpa melibatkan pengguna akhir.
  2. Azure Bot mengirimkan permintaan baru ke ChatGPT atas nama pengguna untuk mendapatkan isi respons.
  3. ChatGPT memformat respons, “Berikut adalah 5 item yang harus dilakukan:…”
  4. Azure Bot membalas kepada pengguna.

Satu hal yang langsung menarik perhatian saya adalah produk ini dapat menghentikannya untuk memanggil situs web atau aplikasi lain dengan membuat kode. Untuk alasan ini, saya menerapkan daftar izin domain sederhana, yang memastikan bahwa semua permintaan hanya dapat dikirim ke API DummyJSON, dan hanya satu per satu – dengan demikian memastikan bahwa pesan dikirim dengan aman.

Ini adalah ide keseluruhan di balik bagian desain.

Hasil Akhir Penggunaan Plugin ChatGPT


Penjelasan di atas melewatkan beberapa detail implementasi hingga pengalamannya sempurna. Ini adalah alat statistik dan diperkirakan akan memerlukan beberapa percobaan dan kesalahan sampai Anda menemukan tip yang tepat. Namun pada akhirnya, ini adalah dialog yang saya lakukan dengan versi final bot.

Cara Menggunakan Plugin ChatGPT Untuk Bekerja

Baca juga Gemini vs ChatGPT: Perbandingan AI Google Dan ChatGPT.

Kesimpulan


Implementasi fungsionalitas plugin ChatGPT lebih kompleks daripada demo singkat di atas. Tujuan dari demo ini adalah untuk menunjukkan bagaimana integrasi ChatGPT dilakukan – dan percayalah, saya juga ingin tahu tentang proses implementasinya seperti Anda. Demo ini memberikan kemungkinan kemampuan ChatGPT untuk mengintegrasikan HTTP, dan saya tidak sabar untuk melihat trik-trik baru apa yang bisa dilakukan oleh komunitas.

Pada saat yang sama, kita, sebagai pengguna teknologi ini, memiliki rasa tanggung jawab: apa yang terjadi jika sebuah tip dengan maksud jahat memberi tahu Azure Bot untuk mengirim permintaan ke server yang tidak dikenal? Vektor serangan baru apa yang tersedia sekarang? Dalam bot yang saya tulis, daftar putih domain sederhana telah diterapkan – apakah ini cukup karena kasus penggunaan baru terus bermunculan? Saya juga telah berhasil menulis ulang spesifikasi API di permintaan berikutnya – apakah ada risiko yang mungkin terkait dengan hal ini? Ada banyak masalah keamanan terkait AI yang perlu dipertimbangkan, dan OpenAI tentu saja menyadari hal ini.

Secara keseluruhan, saya sangat terkesan dengan demo ini. kemungkinan untuk ChatGPT benar-benar tidak terbatas dan saya pasti akan terus memantau fitur ini untuk melihat perkembangannya dalam beberapa minggu dan bulan mendatang. Saya juga berharap dapat segera melihatnya di Azure OpenAI!

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *