Peringatan
Paket ini bersifat eksperimental dan masih dalam tahap awal pengembangan. Hati-hati jika menggunakannya dalam produksi.
Spehulak.jl adalah paket untuk observasi GenAI - membantu Anda memahami apa yang terjadi di dalam model GenAI Anda. Ini menyediakan seperangkat alat untuk memeriksa dan mengevaluasi jejak yang disimpan melalui PromptingTools.jl.
Tambahkan ke lingkungan Anda hanya dengan:
using Pkg
Pkg . activate ( " . " )
Pkg . add ( " Spehulak " )
Kemudian, mulai aplikasi dengan
using Spehulak
launch () # starts an asynchronous server on 9001
Buka browser dan navigasikan ke http://localhost:9001
.
Spehulak dapat memuat percakapan LLM berseri atau hasil RAG yang disimpan melalui PromptingTools.jl (yaitu file JSON).
Ada dua pilihan:
Sebagai contoh, muat file log/conversation...
di repo ini.
Ada dua halaman: 1) Peramban Percakapan dan 2) Penampil RAG. Anda dapat mengubahnya dengan mengeklik ikon di sisi kiri.
Peramban Percakapan menampilkan semua percakapan yang dimuat yang ditumpuk secara vertikal, sehingga Anda dapat dengan cepat menelusuri jejak dan melihat perilaku aneh.
RAG Viewer selalu menampilkan hanya satu RAGResult
tetapi melakukannya dengan sangat detail (misalnya, percakapan pengguna, rantai LLM, sumber, konteks, peringkat/penyematan kandidat, dll.).
Untuk membantu navigasi Anda, Anda dapat menggunakan tanda panah di sudut kanan atas: '<' Ke sebelumnya, '>' Ke berikutnya, dan ikon dadu untuk pemilihan acak. Anda dapat menggunakan alat navigasi ini untuk Peramban Percakapan dan Penampil RAG.
Dalam kasus Browser Percakapan, Anda juga dapat memfilter kata kunci tertentu (pengaruhnya occursin
di balik terpal). Cukup ketikkan beberapa kata kunci dan tekan ENTER. Ini hanya akan menyimpan percakapan yang mengandung kata kunci.
Tip
Saat memfilter percakapan, filter terlebih dahulu dengan Spehulak untuk mengurangi jumlah percakapan yang ditampilkan dan kemudian gunakan alat pencarian browser untuk menyorot semua kemunculan kata kunci yang diinginkan.
Apa yang bisa dilakukannya? Jelajahi percakapan LLM berseri apa pun. Jika Anda menggunakan pesan yang dilacak, kami juga akan menampilkan semua metadata yang relevan (model, templat, versi templat, dll.).
Bagaimana cara menyimpan/mencatat percakapan LLM saya secara otomatis? Lihat dokumen PromptingTools.jl
Atau buat beberapa contoh mainan
using PromptingTools
using PromptingTools : TracerSchema, SaverSchema, OpenAISchema, pprint
schema = OpenAISchema () |> TracerSchema |> SaverSchema
# Let's create a multi-turn conversation
conversation = aigenerate (schema, :JuliaExpertAsk ; ask = " Write a function to convert vector of strings into pig latin " , model = " gpt4o " , return_all = true )
pprint (conversation)
# Let's create one more turn -- notice that we provide the past conversation as a kwarg
conversation = aigenerate (schema, " That's too complicated. Please simplify it. Think step by step first " ; conversation, model = " gpt4o " , return_all = true )
pprint (conversation)
Anda akan melihat beberapa file yang dibuat di folder log/
- coba buka dengan Spehulak!
Bagaimana cara menyimpan hasil RAG saya?
Menyimpan RAGResult
untuk analisis di masa mendatang semudah JSON3.write(path, result)
Contoh lengkap:
using PromptingTools
using PromptingTools : pprint
using PromptingTools . Experimental . RAGTools
# to access unexported functionality
const RT = PromptingTools . Experimental . RAGTools
sentences = [
" Search for the latest advancements in quantum computing using Julia language. " ,
" How to implement machine learning algorithms in Julia with examples. " ,
" Looking for performance comparison between Julia, Python, and R for data analysis. " ,
" Find Julia language tutorials focusing on high-performance scientific computing. " ,
" Search for the top Julia language packages for data visualization and their documentation. " ,
" How to set up a Julia development environment on Windows 10. " ,
" Discover the best practices for parallel computing in Julia. " ,
" Search for case studies of large-scale data processing using Julia. " ,
" Find comprehensive resources for mastering metaprogramming in Julia. " ,
" Looking for articles on the advantages of using Julia for statistical modeling. " ,
" How to contribute to the Julia open-source community: A step-by-step guide. " ,
" Find the comparison of numerical accuracy between Julia and MATLAB. " ,
" Looking for the latest Julia language updates and their impact on AI research. " ,
" How to efficiently handle big data with Julia: Techniques and libraries. " ,
" Discover how Julia integrates with other programming languages and tools. " ,
" Search for Julia-based frameworks for developing web applications. " ,
" Find tutorials on creating interactive dashboards with Julia. " ,
" How to use Julia for natural language processing and text analysis. " ,
" Discover the role of Julia in the future of computational finance and econometrics. "
]
sources = map (i -> " Doc $i " , 1 : length (sentences))
# # Build the index
index = RT . build_index (sentences; chunker_kwargs = (; sources))
# # Generate an answer
question = " What are the best practices for parallel computing in Julia? "
result = airag (index; question, return_all = true )
# You can preview the RAGResult with pretty-printing
pprint (result)
# Save the RAGResult
mkpath ( " log " )
JSON3 . write ( " log/rag_result_20240615.json " , result)
Sekarang, Anda dapat memeriksa detailnya dengan Spehulak!
Apa itu Spehulak?
"Špehulak" (diucapkan "shpeh-hoo-lahk") memadukan "mata-mata" dan "manusia salju", menggunakan kata-kata Ceko "špeh" untuk mata-mata dan "sněhulák" untuk manusia salju. Ini adalah nama yang menyenangkan untuk platform observabilitas karena ini semua tentang menjaga kewaspadaan, seperti mata-mata, sementara peran manusia salju berperan menjadi dingin di bawah tekanan saat Anda menyaring tumpukan data dan tidak terlihat/di latar belakang, tidak berada di dalam. jalan. Ini sempurna untuk mendalami cara kerja aplikasi LLM Anda!
MultiCandidateChunks
) Proyek ini tidak akan mungkin terwujud tanpa Stipple.jl yang luar biasa dari keluarga Genie.jl!