Panduan untuk membangun AI dengan basis pengetahuan khusus menggunakan OpenAI API.
Produk modern sering kali memiliki sejumlah besar data riset pengguna dari berbagai sumber: wawancara riset pengguna, percakapan interkom, email pelanggan, survei, ulasan pelanggan di berbagai platform, dll.
Memahami semua data itu adalah tugas yang menantang. Cara tradisional untuk melakukannya adalah memelihara database yang tertata rapi dengan berbagai tag yang sesuai.
Tetapi bagaimana jika kita dapat memiliki chatbot AI pribadi yang dapat menjawab pertanyaan apa pun tentang data penelitian pengguna kita?
Dengan menanyakan sejumlah besar data riset pengguna historis, chatbot dapat memberikan wawasan dan rekomendasi untuk proyek, produk, atau kampanye pemasaran baru.
Nah, sekarang mungkin hanya dengan beberapa baris kode. Anda dapat melakukannya bahkan tanpa latar belakang teknis. Pada artikel ini, saya akan menjelaskan bagaimana melakukannya langkah demi langkah.
Anda mungkin akrab dengan ChatGPT dan mudah-mudahan sudah menggunakannya dalam proses kerja Anda. Jika tidak, saya sarankan membaca artikel saya tentang dampak AI pada desain terlebih dahulu.
ChatGPT dirancang untuk pengguna akhir sehingga mereka dapat berinteraksi dengannya melalui percakapan. Format dialog memungkinkan ChatGPT untuk menjawab pertanyaan tindak lanjut, mengakui kesalahannya, menantang premis yang salah, dan menolak permintaan yang tidak pantas.
Saya berharap kami dapat mencoba versi chatbot ramah ini dalam percobaan kami, tetapi tidak tersedia melalui API. Sebagai gantinya, kami akan menggunakan GPT-3 — Model Bahasa Besar lainnya dari OpenAI.
Kami dapat berinteraksi dengan GPT-3 secara langsung melalui API tanpa antarmuka web apa pun. Kami membutuhkan itu untuk dapat mengirimkan konteks yang relevan ke model.
Sebelum kita mulai dengan API, Anda dapat mencoba berinteraksi dengan model GPT-3 melalui antarmuka pengguna di GPT-3 Playground.
Kami ingin menggunakan data dari penelitian kami dan bukan hanya pengetahuan umum dari internet. Bagaimana kita bisa melakukannya?
Bisakah fine-tuning bekerja?
Saat pertama kali mendekati masalah ini, saya pikir mungkin untuk menyempurnakan model dengan kumpulan data kami. Ternyata fine-tuning digunakan untuk melatih model jawaban dengan cara tertentu dengan memberikan contoh prompt-response.
Penyesuaian halus dapat membantu melatih model untuk mengenali sentimen, misalnya. Untuk melakukan itu, Anda perlu memberikan pasangan nilai kalimat-sentimen dalam data pelatihan seperti dalam contoh ini:
"prompt":"Overjoyed with the new iPhone! ->", "completion":" positive"
"prompt":"@lakers disappoint for a third straight night ->", "completion":" negative"
Namun dalam kasus kami, kami tidak memiliki contoh respons cepat. Kami hanya memiliki data yang ingin kami gunakan untuk menemukan jawaban. Jadi fine-tuning tidak akan bekerja dalam situasi itu.
Mengirim konteks ke prompt
Sebaliknya, kita perlu membuat model sadar akan konteksnya. Dan kita bisa melakukannya hanya dengan menyediakan konteks di prompt itu sendiri. Seperti ini:
Context information is below.
---------------------
context
---------------------
Given the context information and not prior knowledge,
answer the question: user_query
Namun ada tangkapan. Kami tidak bisa begitu saja mengirim semua data penelitian kami dalam satu prompt. Secara komputasi tidak masuk akal dan model GPT-3 memiliki batas keras permintaan/respons sebesar 2049 “token”. Yang kira-kira 8k karakter untuk gabungan permintaan dan tanggapan.
Alih-alih mengirimkan semua data dalam permintaan, kami perlu menemukan cara untuk mengirim hanya informasi relevan yang akan membantu chatbot kami menjawab pertanyaan.
Ada perpustakaan untuk itu
Kabar baiknya adalah mudah dilakukan dengan perpustakaan sumber terbuka yang disebut Indeks GPT oleh Jerry Liu.
Inilah cara kerjanya:
- Buat indeks potongan teks
- Temukan potongan yang paling relevan
- Ajukan pertanyaan ke GPT-3 menggunakan potongan yang paling relevan
Perpustakaan melakukan semua pekerjaan berat untuk kita, kita hanya perlu menulis beberapa baris kode. Ayo lakukan!
Kode hanya memiliki 2 fungsi: yang pertama membuat indeks dari data kami dan yang kedua mengirim permintaan ke GPT-3. Berikut adalah pseudo-code untuk itu:
def construct_index:
1. set parameters for LLM that will be used
2. construct an index
3. save the index into the filedef ask_ai:
1. get user query
2. send the query with the relevant context
3. show the response
Membangun indeks
Pertama, kita perlu membuat indeks. Indeks seperti database yang menyimpan potongan teks dengan cara yang membuatnya mudah ditemukan.
Untuk melakukan itu, kami harus mengumpulkan semua data kami ke dalam folder. Kemudian kami meminta Indeks GPT untuk mengambil semua file di folder dan memecah setiap file menjadi potongan-potongan kecil yang berurutan. Kemudian kami menyimpan potongan-potongan itu dalam format yang dapat dicari.
def construct_index(directory_path):
# set maximum input size
max_input_size = 4096
# set number of output tokens
num_outputs = 256
# set maximum chunk overlap
max_chunk_overlap = 20
# set chunk size limit
chunk_size_limit = 600 # define LLM
llm_predictor = LLMPredictor(llm=OpenAI(temperature=0, model_name="text-davinci-003", max_tokens=num_outputs))
prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)
documents = SimpleDirectoryReader(directory_path).load_data()
index = GPTSimpleVectorIndex(
documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper
)
index.save_to_disk('index.json')
return index
Saat kita menjalankan fungsi ini, itu akan membuat file bernama index.json yang berisi potongan data kita yang diubah menjadi format yang membuatnya mudah dicari.
Hati-hati, menjalankan kode ini akan dikenakan biaya kredit pada akun OpenAPI Anda ($0,02 untuk setiap 1.000 token, Anda akan mendapatkan $18 kredit gratis saat Anda mengatur akun Anda)
Mengajukan pertanyaan
Sekarang, mari kita ajukan pertanyaan. Untuk mencari indeks yang kita buat, kita hanya perlu memasukkan pertanyaan ke Indeks GPT.
- Indeks GPT akan menemukan bagian indeks kami yang paling terkait dengan pertanyaan
- Ini akan menggabungkannya dengan pertanyaan, dan mengirimkannya ke GPT-3.
- Kemudian, itu akan mencetak respons.
def ask_ai():
index = GPTSimpleVectorIndex.load_from_disk('index.json')
while True:
query = input("What do you want to ask? ")
response = index.query(query, response_mode="compact")
display(Markdown(f"Response: <b>response.response</b>"))
Mengujinya
Saya tidak dapat membagikan data riset pengguna kepada Anda karena bersifat rahasia. Jadi untuk menguji kodenya, saya akan menggunakan wawancara yang dibuat secara otomatis sebagai basis pengetahuan saya sebagai contoh.
Saya telah meminta ChatGPT untuk membuat pertanyaan wawancara tentang memasak di rumah dan penggunaan peralatan rumah tangga. Setelah itu, saya diminta untuk membuat naskah wawancara berdasarkan pertanyaan-pertanyaan tersebut. Wawancara ternyata cukup kosong dan tidak terlalu mendalam, tetapi cukup untuk menguji AI kami.
Setelah mengunggah file dan membuat indeks, saya dapat mencoba mengajukan pertanyaan tentang wawancara tersebut.
Misalnya, saya dapat meminta chatbot saya untuk “brainstorming ide kampanye pemasaran untuk penggorengan udara yang akan menarik bagi orang yang memasak di rumah”. Ini akan menghasilkan ide berdasarkan wawancara yang telah saya berikan dan bukan berdasarkan pengetahuan umum dari Internet.
Kode sumber untuk artikel ini ada di sini.
Jika Anda seorang pembelajar visual, Anda dapat memeriksa video tempat saya menjelaskan semuanya langkah demi langkah.
Kami telah membuat ai dengan basis pengetahuan khusus hanya dengan beberapa baris kode. Coba pikirkan sejenak bagaimana AI kustom dapat diakses.
Hanya dalam beberapa menit, kami telah berhasil membuat solusi khusus untuk menelusuri wawasan di basis data penelitian kami. Teknik yang sama dapat digunakan dalam lusinan kasus penggunaan lain yang berbeda.
Bayangkan chatbot kesehatan yang memberikan nasihat medis berdasarkan riwayat dan gejala kesehatan pengguna. Atau penasihat hukum buatan yang mampu menggali dokumen hukum untuk memberi Anda informasi yang berarti. Atau chatbot dengan basis pengetahuan tentang peraturan keuangan dan praktik terbaik yang dapat membantu perencanaan keuangan dan membantu Anda membuat keputusan yang tepat.
Dan ini hanyalah salah satu teknik kecil yang kami jelajahi hari ini. Dengan kemajuan dalam Model Bahasa Besar, kini semakin mudah untuk membuat AI khusus yang dapat melayani kebutuhan spesifik Anda.
Apa yang ingin Anda buat selanjutnya?
Pengeluaran hk tercepat hari ini dari web site togel Data SGP pools https://iko-ze.net/ hasil keluaran hk terkini tiap hari. Dengan kenakan rekapan bagan knowledge hk prize, Pasti mempermudah bettor di dalam memandang no pengeluaran SGP hari ini. Di mana tiap hasil pengeluaran hk https://urbantg.com/ ini terkini tetap kami pembaharuan menjajaki result keluaran hongkong terkini dari hongkongpools.com. Tujuannya sehingga para pengagum judi togel http://turkishtime.org/ di Indonesia dapat bersama mudahnya mengetahui hasil hk hari ini terkini serta terlalu kilat.