Halo, proyek ini tentang membangun antarmuka yang berguna ke dalam model bahasa GPT dari Clojure.
Ini masih dalam proses, tetapi memiliki pengelola percakapan dalam memori yang berfungsi (memori percakapan) dan pengelola tugas WIP yang belum sempurna (agen).
Ini masih tahap awal, tetapi saya bermaksud menggunakannya dalam pekerjaan saya dan juga mempelajari dasar-dasar interaksi dengan model bahasa.
Jika Anda tertarik, ingin membantu, atau butuh bantuan, Anda dapat menemukan saya di saluran #multi-gpt di slack Clojurians.
Berikut cara memulai pengelola percakapan, yang juga dapat Anda temukan dalam contoh di bawah basic_conversation.clj
( require '[multi-gpt.repl-interface :refer :all ]
'[clojure.pprint :refer [pprint]])
; ;
; ; Run below if you want to use portal to see the output
; ;
( require '[portal.api :as p])
( def p ( p/open { :launcher :vs-code }))
( add-tap #'p/submit)
; ;
; ; Setup the system (includes a conversation manager)
; ;
( def system ( setup-system " api-key "
" org-id "
" gpt-3.5-turbo " ))
; ;
; ; Create a conversation
; ;
( def conversation ( create-conversation system))
; ;
; ; Create a convenience function for chatting as the user role ;;
; ;
( def chat ( fn [message]
( update-conversation system conversation [{ :role " user " :content message}])))
; ;
; ; Add a watch to print to the REPL (I also use portal and tap>)
; ;
( add-watch ( -> system :conversation-manager :db )
:on-update
( fn [_ _ _ new-state]
; ;
; ; If you want to view output with portal uncomment this
; ;
#_( tap> ( with-meta ( update ( get new-state ( :id conversation))
:messages
reverse)
{ :portal.viewer/default :portal.viewer/tree }))
; ;
; ; Comment out below if using portal
; ;
( pprint
( get new-state ( :id conversation)))))
; ;
; ; Initialize your conversation with a system prompt
; ; This is also a reasonable place to add example messages if needed
; ;
( update-conversation
system
conversation
[{ :role " system " :content " You will help me develop the next breakthrough in distributed systems. " }])
; ;
; ; Engage in conversation
; ;
( chat " Please provide the most cutting edge research topics about these systems. " )
Hak Cipta 2023 Cameron Barre
Izin dengan ini diberikan, secara gratis, kepada siapa pun yang memperoleh salinan perangkat lunak ini dan file dokumentasi terkait (“Perangkat Lunak”), untuk menggunakan Perangkat Lunak tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan , mempublikasikan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan mengizinkan orang yang menerima Perangkat Lunak untuk melakukan hal tersebut, dengan tunduk pada ketentuan berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini akan disertakan dalam semua salinan atau sebagian besar Perangkat Lunak.
PERANGKAT LUNAK INI DISEDIAKAN “APA ADANYA”, TANPA JAMINAN APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN TIDAK ADA PELANGGARAN. DALAM KEADAAN APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU TANGGUNG JAWAB LAINNYA, BAIK DALAM TINDAKAN KONTRAK, HUKUM ATAU LAINNYA, YANG TIMBUL DARI, DARI ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU HAL-HAL LAIN DALAM PERANGKAT LUNAK.