3 poin oleh GN⁺ 2023-07-21 | 2 komentar | Bagikan ke WhatsApp
  • Kesulitan terbesar saat menambahkan input bahasa alami ke aplikasi yang sudah ada adalah mengubah niat pengguna menjadi struktur yang bisa dipercaya oleh perangkat lunak, dan TypeChat adalah library yang mencoba menyelesaikan titik ini dengan tipe TypeScript
  • Karena respons teks bebas dari LLM tidak stabil untuk di-parse, TypeChat mengarahkan respons ke JSON dan menambahkan validasi skema agar menjadi data yang bisa diproses aplikasi
  • Tipe TypeScript dapat merepresentasikan struktur JSON dengan presisi dan merupakan format yang banyak ditemui LLM selama proses pelatihan, sehingga cocok digunakan sebagai skema respons
  • Jika respons tidak sesuai dengan tipe, error kompilator TypeScript dapat dikirim balik sebagai umpan balik untuk diperbaiki, sehingga keamanan tipe bisa ditingkatkan sebelum pascapemrosesan atau konfirmasi pengguna
  • TypeChat dapat diinstal dengan npm install typechat, dirilis sebagai open source berlisensi MIT, dan juga menyediakan integrasi dengan OpenAI API dan Azure OpenAI Service

Mengubah permintaan bahasa alami menjadi data yang bisa diproses aplikasi

  • Model bahasa besar terbaru mudah dipasang ke asisten chat, tetapi mengintegrasikan bahasa alami secara andal ke antarmuka aplikasi yang sudah ada merupakan tantangan tersendiri
  • TypeChat berfokus pada mengubah permintaan pengguna ke bentuk yang dapat diproses aplikasi, serta memungkinkan tindakan yang dapat dipercaya oleh pengembang dan pengguna
  • Library yang dirilis secara publik ini menggunakan definisi tipe dalam codebase untuk memperoleh respons AI yang terstruktur, dengan tujuan mencapai keamanan tipe
  • Instalasi dapat dilakukan dengan perintah berikut
npm install typechat

Menggunakan JSON dan tipe alih-alih parsing bahasa alami

  • LLM pada dasarnya disetel untuk percakapan bahasa alami seperti bahasa Inggris, sehingga meskipun aturan seperti “jawab dalam bentuk daftar bullet” dimasukkan ke prompt, perangkat lunak biasa tetap sulit mem-parse hasilnya secara andal
  • Jika diminta menjawab dalam JSON, biasanya respons bisa dibuat dalam bentuk yang lebih mudah ditangani aplikasi
    • Dalam contoh, permintaan untuk 1 “blueberry muffin” dan 1 “grande latte” diubah menjadi JSON dengan array items
  • Contoh sederhana membantu mengarahkan struktur, tetapi tidak cukup mendefinisikan apa yang harus dikembalikan AI dan juga tidak menyediakan kriteria validasi

Menggunakan tipe TypeScript sebagai skema respons

  • TypeChat menyertakan tipe TypeScript di dalam prompt untuk mengarahkan struktur JSON yang harus dikembalikan LLM
  • Tipe Response pada skema contoh mencakup items: Item[], dan Item memiliki field name, quantity, serta size dan notes yang opsional
  • TypeScript cocok untuk mendeskripsikan JSON secara presisi, dan karena LLM telah banyak terpapar definisi tipe, format ini berguna untuk memandu bentuk respons
  • Jika respons tidak sesuai dengan tipe, kompilator TypeScript akan memvalidasinya berdasarkan definisi tipe yang merupakan kode TypeScript yang valid
  • Umpan balik error kompilator dimanfaatkan untuk mendorong perbaikan respons, sehingga alur untuk mendapatkan respons yang sesuai tipe menjadi lebih kokoh

Cara penggunaan dan contoh TypeChat

  • TypeChat dapat digunakan dengan pendekatan skema data untuk mengubah niat pengguna menjadi respons terstruktur
  • Kode contoh mendefinisikan antarmuka SentimentResponse yang menilai sentimen kalimat input pengguna sebagai salah satu dari negative, neutral, atau positive
  • createLanguageModel(process.env) membuat model bahasa berbasis variabel lingkungan, lalu setelah membaca file skema, dibuat penerjemah dengan createJsonTranslator<SentimentResponse>
  • Jika translator.translate(request) berhasil, maka response.data.sentiment dicetak; jika gagal, maka pesan error ditampilkan
  • Selain skema data, skema API juga dapat digunakan untuk menyusun program dasar
  • Cara penggunaan dapat dilihat di docs dan examples

Open source dan netral terhadap model

  • TypeChat adalah open source berlisensi MIT dan tersedia di GitHub
  • Untuk kemudahan, TypeChat menyediakan integrasi bawaan dengan OpenAI API dan Azure OpenAI Service
  • Tujuan desainnya adalah netral terhadap model, dan mengarah pada pendekatan yang dapat digunakan selama tersedia API bergaya chat completion
  • Saat ini, TypeChat bekerja paling baik pada model yang dilatih dengan data prosa dan kode
  • Paketnya tersedia di npm sehingga bisa langsung dicoba

2 komentar

 
sungwoo 2023-07-26

Haha, habis lihat beritanya aku mau posting juga, tapi ternyata nggak bisa ngalahin AI.

 
GN⁺ 2023-07-21
Komentar Hacker News
  • Saya kurang paham nilai tambah apa yang ada di sini
    Pesan inti yang dikirim ke LLM ada di sini: https://github.com/microsoft/TypeChat/blob/main/src/typechat...
    Pada akhirnya ini tampak seperti memaksa pengembalian data terstruktur dengan prompt tetap, ditambah sedikit otomatisasi dan ketergantungan pada vendor. Sebagian besar library LLM seperti ini pada dasarnya hanyalah API kasar yang membungkus API di bawahnya, dan skrip yang melakukan hal yang sama bisa dibuat dengan mudah serta lebih fleksibel saat model dan kebutuhan pengguna berubah
    Misalnya, jika ingin mengubah prompt atau memakai kelas Python, ada perbedaan beban kerja yang cukup besar antara library seperti ini dan pendekatan yang mengekspos pemanggilan API serta template teks kepada pengguna (https://github.com/hofstadter-io/hof/blob/_dev/flow/chat/llm...)

    • Nilainya ada di sini: 1) menjalankan pemeriksa tipe TypeScript pada hasil yang dikembalikan LLM, 2) jika ada kesalahan tipe, mengumpulkannya lalu membuatnya menjadi “prompt perbaikan” untuk mendorong keluaran yang lebih mungkin lolos pemeriksaan tipe, 3) menangani dengan rapi kasus ketika heuristik di poin 2 gagal
      https://github.com/microsoft/TypeChat/blob/main/src/typechat...
      Dari pengalaman bereksperimen dengan ide yang sama, heuristik poin 2 bekerja sangat baik secara mengejutkan untuk tipe yang relatif sederhana, yaitu record dan array yang tidak bertingkat dalam serta penggunaan variabel tipe yang terbatas. Hanya dengan memberi prompt ke LLM untuk mengembalikan nilai dengan tipe yang relatif sederhana pun sudah bisa membuat aplikasi yang berguna, dan library ini punya nilai karena mengurangi kebutuhan untuk mengimplementasikan sendiri pola permintaan itu serta menyediakan integrasi standar dengan codebase TypeScript
    • Hampir semua library LLM yang terlihat belakangan ini seperti ini. Pada akhirnya semuanya bermuara pada meminta LLM melakukan sesuatu dengan cara tertentu, dan saya pernah melihat bahwa pada kondisi yang kompleks, model cenderung kurang mengikuti instruksi lalu kembali ke perilaku default
      Meski begitu, rasanya memang masuk akal untuk memakai library, jadi saya terus memperhatikan pendekatan mana yang akan cukup matang
    • Saya tidak paham di mana letak ketergantungan pada vendornya. Ini adalah library open source, dan bahkan file yang Anda tautkan memuat konfigurasi untuk dua vendor, ChatGPT dan Bard
    • Nilainya ada pada mengubah data tidak terstruktur menjadi data terstruktur, dan memastikan bahwa data tersebut memenuhi batasan skema
      Misalnya, jika ada 1000 respons survei teks bebas tentang produk, Anda bisa membuat skema dan menjalankan TypeChat untuk masing-masing respons sehingga mendapatkan dataset dari teks bebas tersebut. Sangat berguna
    • Semakin baik abstraksinya, semakin mudah menulis kode untuk hal-hal yang berguna
  • Ada satu bagian yang tidak saya mengerti
    Saya tidak paham kenapa harus melalui prosedur rumit berupa berharap respons yang valid datang, menempelkan validator di langkah terakhir untuk mendeteksi respons yang salah, lalu memohon pada model agar menjawab dengan tata bahasa yang diinginkan
    Jika hanya men-sampling token yang sesuai dengan format yang diminta, Anda bisa menjamin sintaks JSON yang valid. Alih-alih selalu memilih token dengan skor tertinggi secara greedy, cukup pilih token berskor tertinggi di antara token yang sesuai dengan format yang diminta
    Guidance dari Microsoft sudah melakukan ini: https://github.com/microsoft/guidance
    Namun tampaknya OpenAI tidak membuka seluruh skor semua token dan hanya menampilkan token dengan skor tertinggi. Jika menjalankan model secara lokal, memakai Guidance itu mudah dan bisa menjamin JSON selalu benar, serta generasinya lebih cepat, jadi terasa aneh

    • Ini mirip dengan kisah M&M cokelat[0]. Jika model mengembalikan data yang benar secara semantik, setidaknya kita bisa berharap sintaksnya juga benar. Jika itu pun gagal, responsnya memang harus dibuang
      Selain itu, dengan cara seperti itu sepertinya sulit menangkap seluruh kompleksitas tipe TypeScript
      [0] https://www.snopes.com/fact-check/brown-out/
    • Dengan cara seperti itu, Anda bisa menjamin JSON yang benar secara sintaks, tetapi apakah itu benar secara semantik adalah persoalan lain
      Jika model sebenarnya sangat ingin memasukkan token lain tetapi dipaksa memasukkan {, kualitas teks yang dihasilkan setelahnya bisa menurun. Saya tidak yakin, ini hanya pemikiran sepintas
    • Men-sampling hanya token yang valid menurut saya sangat menjanjikan
      Saya pernah melakukan fine-tuning LLM open source untuk parsing JSON, dan tergantung kasus penggunaannya, 70B parameter bisa jadi berlebihan bahkan tanpa guided token sampling. Saya melihat hasil yang cukup bagus dari model yang jauh lebih kecil, dan sepertinya menarik jika fine-tuning model kecil digabung dengan guided token sampling
      Hanya saja, untuk aplikasi yang sangat umum, fine-tuning mungkin tidak sempurna. Akan jadi masalah jika ada input yang tidak diantisipasi dalam dataset pelatihan
    • LLM bisa menangani skenario yang lebih kompleks. Misalnya di mesin penjual otomatis, pengguna bisa langsung menyebut pesanannya tanpa melalui seluruh alur pemesanan, lalu sistem bisa menebak kecocokannya dengan stok dari ungkapan seperti “beberapa batang cokelat”
      Tentu saja, di web ini tidak masuk akal. Jauh lebih mudah mengklik beberapa barang dengan mouse
    • Seperti yang baru-baru ini dijelaskan Llama.cpp, mereka menambahkan sampling berbasis tata bahasa yang membatasi pemilihan token agar mengikuti format tetap
      https://github.com/ggerganov/llama.cpp/pull/1773
  • Rasanya setiap kali saya memikirkan sesuatu, Anders Hejlsberg malah keburu membuatnya.
    Permintaan dan respons terstruktur 100% adalah evolusi berikutnya untuk LLM. Orang-orang sudah mulai jenuh dengan chatbot, dan akan luar biasa jika kita bisa memasang backend apa pun tanpa perlu repot parsing teks dan mengkhawatirkan prompt.

    • Saya ingin memasang antarmuka yang dapat ditindaklanjuti pada LLM yang berjalan secara lokal, hal-hal seperti “cek waktu”, “cek kalender”, “kirim pesan ke pengguna”.
      TypeChat tampaknya mengarah ke jalur yang benar. Saya bisa membayangkan lapisan tambahan seperti, “cocokkan input JSON ini ke salah satu tindakan yang mungkin, jika bisa”.
      Saya bisa melihat masa depan hibrida yang rapi di mana bot, yaitu LLM dan sebagainya, benar-benar menyambungkan lapisan-lapisan kode nyata. Kadang menjadi bagian dari pengumpulan/penandaan, kadang menjadi bagian yang merespons input.
      Secara keseluruhan ini area yang sangat menarik, tetapi semuanya bergerak terlalu cepat jadi saya belum mendalaminya. Banyak orang pintar sedang mengerjakannya, jadi rasanya perlu menunggu debunya sedikit mengendap. Meski begitu, rasanya antarmuka rumah impian yang saya bayangkan sudah berada pada tahap bisa dibuat.
    • Saya baru saja mengimplementasikan sesuatu yang mirip kemarin, tetapi lebih berfokus pada fungsi daripada objek.
    • Ini bisa luar biasa jika digunakan sebagai mapper dinamis untuk lapisan backend.
      Misalnya, coba ikuti payload API yang sering berubah di sekitar konsumen Java. Di sektor perbankan, dengan payload JSON raksasa, saya sampai membuat lapisan NodeJS terpisah agar tetap waras di lingkungan backend Java.
      Mapping adalah area di mana LLM bisa benar-benar bersinar.
    • Layak dilihat: https://news.ycombinator.com/item?id=36750083
  • Kalau mau pakai tafsir yang panas, kita perlahan masuk ke tahap toolifikasi AI. Di tahap ini orang mulai sadar bahwa nilai nyata yang diciptakan tidak seberapa, tetapi investasi ke AI sudah terlalu besar sehingga uang terus mengalir masuk. Ini juga topik yang bagus untuk menerbitkan paper akademik, dan LangChain nyaris terasa seperti lelucon tetapi tetap mendapat seed $10 juta.
    DeFi/crypto melewati tahap ini 2 tahun lalu. Akan ada semacam limbo aneh selama beberapa tahun, lalu orang perlahan sadar bahwa AI adalah fitur, bukan produk, cakupan penerapannya terbatas, dan tidak akan menyelamatkan dunia. Mobil otonom tidak akan berhasil karena semua edge case, dan operasi bedah juga tidak bisa karena bisa membunuh orang.
    Bahkan untuk alat AI yang paling berguna seperti Copilot, saya terus mengatakan bahwa paling banter manfaatnya hanya marginal. Dalam skenario terbaik, itu hanya mengurangi beberapa klik di Google, dan agen sama sekali tidak “cerdas”. Kita pernah mengalami gelembung serupa beberapa tahun lalu dengan chatbot[1], dan sekarang tidak ada yang peduli. “Metaverse” berakhir jauh lebih cepat, tetapi psikologi kerumunannya sama. Sesuatu disebut “hal besar berikutnya”, lalu ternyata bukan.
    [1] https://venturebeat.com/business/facebook-opens-its-messenger...

    • Saya sangat tidak setuju dengan anggapan bahwa AI hanyalah gelembung dengan cakupan terbatas.
      Anda memilih contoh penerapan AI yang paling sulit, seperti mobil otonom dan operasi bedah. Sebagian besar pekerjaan kebanyakan orang tidak menyangkut hidup dan mati, jadi sangat cocok untuk otomatisasi. Bahkan jika unsur manusia tetap ada pada pekerjaan yang menyangkut nyawa, besar kemungkinan itu akan diperkuat oleh agen AI. Misalnya, meskipun operasi dilakukan manusia, diagnosis oleh dokter atau perawat bersama AI bisa menjadi kewajiban.
      Anda serius membandingkan situasi sekarang dengan gelembung chatbot beberapa tahun lalu? ChatGPT mencapai 100 juta pengguna hanya dalam beberapa bulan, dan benar-benar dicoba oleh sangat banyak orang. Gelembung chatbot beberapa tahun lalu bahkan hampir tidak punya kehadiran.
      Soal Copilot dan sejenisnya yang katanya hanya berguna secara marginal, itu karena kita sedang melihat versi terburuknya saat ini. ChatGPT mengubah hidup saya, padahal itu bahkan belum menjalankan kode. Code Interpreter memang bisa, tetapi saya belum mencobanya.
      Sekitar tahun 2030, manusia mungkin tidak lagi mengetik kode, melainkan memberi prompt ke mesin dan mengarahkan agen AI. Pada saat itu, sebagian besar pekerjaan juga kemungkinan besar akan terotomatisasi.
      AI bukan sekadar tren, melainkan akan mengubah setiap industri, dan jauh lebih cepat daripada yang orang bayangkan. Sinisme yang meremehkan implikasi AI dengan membandingkannya dengan metaverse itu konyol dan kurang imajinasi. Memang masih banyak yang harus dikerjakan, terutama di sisi agen AI, tetapi kita mungkin akan sampai ke sana jauh lebih cepat daripada yang orang kira, dan dampaknya akan sangat besar.
    • Setiap kali memakai ChatGPT, saya merasa seperti melihat teknologi yang berbeda dari yang dilihat orang lain. Katanya ia menjawab semua pertanyaan dan mengajarkan apa saja, tetapi bagi saya rasanya seperti layanan content farm. Copilot juga mirip; biasanya lebih mudah menulis kode sendiri daripada memilah contoh buruk untuk mencari yang paling tidak buruk lalu memperbaiki bug-nya.
      Namun AlphaGo tidak butuh waktu lama untuk berubah dari kondisi “berhalusinasi” langkah buruk menjadi pemain terbaik dunia. Jika itu juga mungkin pada model bahasa, GPT-x bisa saja menyapu habis semua perdebatan saat ini.
    • Saya sangat tidak setuju dengan pernyataan “tidak ada nilai nyata yang diciptakan”. Saya punya kontra-contoh yang sangat jelas dari use case saya sendiri.
      GPT-4 sangat membantu ketika seorang yang terampil mengerjakan tugas-tugas pendamping di mana keterampilan dasarnya cukup kuat tetapi pengetahuan domainnya lemah.
      Saya sudah menulis kode selama 10 tahun dan belakangan ini baru mulai belajar machine learning untuk pertama kali; saya memakai GPT-4 setiap hari dan sangat puas.
      Tentu saja bagian kasarnya kadang bisa mengganggu. Bagi saya itu masih pada tingkat yang bisa dikelola dan bukan kerepotan besar. Saya sudah terbiasa mengabaikannya atau memutar jalan, dan jelas ada keterampilan tersendiri dalam menggunakan alat seperti ini.
      Saya rasa nilai yang diberikannya akan terus bertambah. Kita bahkan belum memetik semua buah yang rendah maupun yang setengah rendah.
    • Perbedaan kunci dengan DeFi/crypto adalah, di sana orang harus sepenuhnya mengubah cara mereka melakukan sesuatu untuk mendapatkan manfaat awal, betapapun mengesankannya dari sisi teknis.
      AI modern, yang pada praktiknya biasanya berarti LLM, bisa langsung diterapkan secara luas di hampir semua sektor ekonomi. Karena itu banyak orang sudah membuat dan meluncurkan fitur. Teknologi ini punya nilai yang luar biasa besar. Apakah akan mengubah dunia sepenuhnya? Tidak. Tetapi cukup untuk menciptakan kategori produk baru dan secara mendasar meningkatkan porsi besar dari kemampuan produk yang sudah ada.
    • Rasanya ini tafsir yang cukup masuk akal. AI memang punya banyak kegunaan dan sangat bagus untuk beberapa hal, tetapi bukan solusi ajaib untuk segalanya seperti yang diharapkan orang.
  • Saya tidak paham kenapa di antara asisten suara dari Apple, Google, Amazon, dan Microsoft masih belum ada yang mengintegrasikan LLM ke layanannya, dan kenapa OpenAI juga belum merilis asisten suara sendiri
    Selain itu, kalau situs web mengekspos URL standar untuk interaksi AI seperti RSS, lalu membuka antarmuka lewat TypeChat, rasanya ini bisa cukup mendorong ke arah sana

    • OpenAI sangat mungkin membuat asistennya sendiri. Kalau melihat “Building a kind of JARVIS @ OреոΑӏ”, tampaknya begitu, dan Microsoft juga tentu sedang mengerjakan integrasi atau penafsiran ulang Cortana dengan LLM OpenAI
      Namun, dibanding LLM berbasis suara, nilai kemampuan untuk benar-benar melakukan tindakan jauh lebih besar. Ambil Alexa sebagai contoh: dibutuhkan sistem yang menangani kontrol smart home dengan cara yang bisa diprediksi dan bisa di-debug. Kalau tidak, orang akan kesal
      Saya jelas melihat ini mungkin dilakukan, tetapi sistem seperti Alexa atau Siri saat ini, dan Cortana yang makin jarang dipakai, selama bertahun-tahun dibangun di atas model yang lebih lemah dengan aturan dan perangkat lunak yang memakai berbagai hook dan API. Agar ini bisa berjalan, mereka harus memperbaikinya sambil mempertahankan kualitas saat ini, dan pada saat yang sama merombak bagian-bagian utama sistem, jadi memang butuh waktu
      Lagi pula, asisten seperti ini sebenarnya tidak menghasilkan uang dan umumnya malah merugi. Nilainya hanya ada bagi perusahaan besar yang bisa menghasilkan uang dengan cara lain atau mendorong bisnis lain seperti ponsel dan belanja, jadi insentif bagi startup kecil
      Saya pernah bekerja di Cortana dan Alexa, dan juga banyak memikirkan untuk membuat versi baru dari nol berdasarkan perkembangan LLM. Teknologinya secara umum terasa intuitif, dan ada ide use case baru yang kini jadi mungkin, tetapi saya tidak bisa menemukan model bisnis yang benar-benar jalan. Jadi sekarang saya mengerjakan hal yang sama sekali berbeda
    • Saat pertama kali tahu apa itu ChatGPT, pikiran saya adalah, “Oh, jadi Siri seharusnya memang seperti ini.”
    • Setelah memakai ChatGPT dan Bing, berbicara dengan Alexa terasa konyol. Sangat menjengkelkan melihat hardware yang sebenarnya bagus selama bertahun-tahun tertahan oleh software yang buruk
    • Microsoft sedang melakukan itu untuk menggantikan Cortana di Windows 11
    • Saya sangat menantikan sesuatu yang bisa dipakai untuk mengendalikan Home Assistant
      Hanya saja, memakai API berbasis cloud untuk ini terasa terlalu mengkhawatirkan, jadi saya ingin sesuatu yang berjalan di server rumahan. Pada saat yang sama, pengenalan suara dan waktu responsnya harus sangat cepat sampai tidak ada rasa sedang menunggu
      Saya sudah beberapa kali melihat upaya DIY untuk asisten pribadi, tetapi selalu ada latensi yang cukup besar, jadi kalau dipakai sering rasanya akan cepat bikin kesal
  • Ada bagian yang bilang mudah mendapatkan respons seperti { "name": "grande latte" }
    Tetapi kalau tipenya adalah Item = { name: string; ... size?: string; }, saya kurang paham bagaimana ini bisa mencegah name: "grande latte"
    Contoh responsnya berisi "size": 16 dan disebut “cukup bagus”, tetapi itu bahkan tidak mengembalikan tipe yang diminta. Mungkin ini hanya typo di contoh, dan kalau begitu idenya sendiri tampak keren

    • Terima kasih sudah menangkapnya. Pada iterasi sebelumnya dari tulisan blog itu, kami memakai skema lain yang secara tidak sengaja menetapkan size sebagai number. Skemanya sudah diubah, tetapi prompt-nya belum dijalankan ulang, dan sekarang mestinya sudah diperbaiki
    • Menurut saya contoh ini secara keseluruhan cukup lemah. Masalahnya bukan sekadar typo sederhana
      Sejak awal, kemungkinan besar Anda sebenarnya tidak menginginkan field string name. Tidak ada cara untuk mencegah menerima nilai seperti { name: “yang cokelat itu”, size: “cangkir espresso itu”, … }, dan ini sama buruknya dengan sekadar mem-parsing string asli
      Yang mungkin Anda inginkan adalah union type string besar yang merepresentasikan nilai-nilai yang diketahui untuk tiap field. Dengan begitu, LLM bisa dipaksa menebak dari antara pilihan itu
      Tetapi saya juga ragu kenapa itu harus diikat ke sintaks tipe. Sesuatu seperti Zod yang bisa menyusun union type semacam itu dari data runtime tampak lebih cocok
      Anda juga butuh batasan seperti kuantitas harus berupa bilangan bulat positif dan tidak boleh pecahan. Tentu nilai JSON itu bisa divalidasi belakangan, tetapi kalau begitu pengguna akan melihat dua jenis error. Yang satu adalah error dari LLM dengan gaya bahasa manusia yang fasih, dan yang lain adalah error teknis yang aneh seperti “nilai kuantitas terlalu besar”
      Sintaks tipe tampak berada di tempat yang salah untuk menjelaskan hal-hal seperti ini
    • Ini kelihatannya cuma bug dokumentasi. Sepertinya di tahap akhir penulisan pengumuman mereka mengubah dari jumlah ons ke ukuran standar dan lupa menyesuaikan nilai output
      Dari kode yang diberikan saja, sistem tidak punya cara untuk memetakan “grande” menjadi 16, dan 16 juga tidak tampak dipakai di tempat lain
    • Paragraf setelahnya membahas “apa yang terjadi jika tipenya diabaikan”, jadi mungkin memang ditulis dengan maksud itu
  • Ini tampaknya cara yang menjalankan LLM berulang kali sampai keluar sesuatu yang lolos pemeriksaan tipe, lalu mem-prompt ulang dengan pesan error
    Idenya lucu dan sepertinya bisa berjalan, tetapi dengan model besar dan prompt input yang panjang, biayanya bisa jadi tinggi. Rasanya ini bukan solusi untuk semua skenario

    • Setidaknya untuk OpenAI, bukankah akan lebih baik memakai fitur function calling baru secara internal?
    • Saya tidak begitu paham persis bagaimana TypeChat bekerja, tetapi Guidance [1] adalah proyek serupa dan benar-benar bisa memaksa format dengan mengintegrasikannya ke sampling token
      [1]: https://github.com/microsoft/guidance
    • Kebanyakan produk tampaknya akan lebih dulu mengkhawatirkan product-market fit, lalu setelah itu baru berupaya menekan biaya
      Ada juga asumsi yang cukup masuk akal bahwa karena pasar menginginkan output terstruktur, model-model pun akan membaik ke arah itu
  • Minggu ini saya merilis sesuatu yang sangat mirip untuk Laravel PHP, tetapi dengan cakupan yang lebih kecil: https://github.com/adrenallen/ai-agents-laravel
    Menurut saya, engineer seharusnya bisa dengan mudah menjalankan “bot” baru dengan LLM yang tersedia. Ada banyak pekerjaan membosankan seperti mengubah fungsi ke bentuk yang bisa dipahami ChatGPT, lalu memproses respons dan mem-parsing-nya lagi
    Dengan sistem seperti ini, Anda bisa fokus menulis kode PHP yang sebenarnya dan menambahkan beberapa komentar yang jelas, lalu bot dapat langsung memakai kode itu sebagai alat untuk tugas apa pun
    Pendekatan seperti ini juga membuat berbagi kode jauh lebih mudah. Jika seseorang menulis sebuah fungsi, Anda bisa membawanya ke bot baru dan langsung memakainya. Hal keren di sini adalah ini menghilangkan “lapisan konversi agar LLM bisa menggunakan dan memahaminya”, dan sangat mempercepat proses build
    Ini memang belum sempurna, tetapi saya rasa pada akhirnya semuanya akan bergerak ke arah ini jika kita ingin memanfaatkan kode satu sama lain dengan lebih baik. Jika memikirkan cara kita memakai package manager dalam coding saat ini, saya berharap ada package manager untuk alat khusus AI. Misalnya, install library “ambil cuaca” dan tambahkan ke bot saya, lalu sekarang bot itu bisa mengambil cuaca

    • Saya sedang mengerjakan pendekatan yang mirip tetapi dengan cakupan yang lebih luas, jadi saya menekan bintang. Beberapa idenya benar-benar rapi
  • Tunggu, apakah ini melakukan validasi runtime terhadap definisi tipe TypeScript? Jika ini bisa dirilis sebagai library atau fitur mandiri, ini bisa benar-benar jadi game changer untuk hal-hal seperti validasi payload respons API di codebase TypeScript

  • Saya sangat terkejut mereka tidak memakai guidance [0] di sini
    Itu bisa menyarankan pelengkapan field wajib sehingga kebutuhan validasi[1] bisa berkurang, dan pada akhirnya sepertinya juga bisa menghemat waktu GPU
    Pasti ada alasannya, dan saya benar-benar ingin tahu
    Omong-omong, saya sedang membuat hal seperti ini juga, lalu rasanya Microsoft tiba-tiba datang dan memakan jatah makan siang saya
    [0] https://github.com/microsoft/guidance
    [1] https://github.com/microsoft/TypeChat/blob/main/src/typechat...