AIHELPME memanfaatkan kekuatan dokumentasi Julia yang luas dan model AI canggih untuk memberikan panduan pengkodean yang disesuaikan. Dengan mengintegrasikan dengan compasingtools.jl, ia menawarkan pendekatan unik dan dibantu AI untuk menjawab pertanyaan pengkodean Anda secara langsung di lingkungan Julia.
Peringatan
Ini hanya prototipe! Kami belum menyetelnya, jadi jarak tempuh Anda mungkin bervariasi! Selalu periksa hasil Anda dari LLMS!
Untuk menginstal AIHELPME, gunakan Julia Package Manager dan nama paket:
using Pkg
Pkg . add ( " AIHelpMe " )Prasyarat:
Semua pengaturan harus memakan waktu kurang dari 5 menit!
Penggunaan Dasar :
using AIHelpMe
aihelp ( " How do I implement quicksort in Julia? " ) [ Info: Done generating response. Total cost: $0.015
AIMessage("To implement quicksort in Julia, you can use the `sort` function with the `alg=QuickSort` argument.")
CATATAN: Sebagai default, kami hanya memuat dokumentasi Julia dan Docstrings untuk pustaka standar. Model default yang digunakan adalah GPT-4 Turbo.
Anda dapat mencetak jawaban yang cukup menggunakan pprint jika Anda mengembalikan Ragresult lengkap ( return_all=true ):
using AIHelpMe : pprint
result = aihelp ( " How do I implement quicksort in Julia? " , return_all = true )
pprint (result) --------------------
QUESTION(s)
--------------------
- How do I implement quicksort in Julia?
--------------------
ANSWER
--------------------
To implement quicksort in Julia, you can use the [5,1.0]`sort`[1,1.0] function with the [1,1.0]`alg=QuickSort`[1,1.0] argument.[2,1.0]
--------------------
SOURCES
--------------------
1. https://docs.julialang.org/en/v1.10.2/base/sort/index.html::Sorting and Related Functions/Sorting Functions
2. https://docs.julialang.org/en/v1.10.2/base/sort/index.html::Sorting and Related Functions/Sorting Functions
3. https://docs.julialang.org/en/v1.10.2/base/sort/index.html::Sorting and Related Functions/Sorting Algorithms
4. SortingAlgorithms::/README.md::0::SortingAlgorithms
5. AIHelpMe::/README.md::0::AIHelpMe
Catatan: Anda dapat melihat model ditipu karena dapat melihat dokumentasi ini ...
aihelp Macro :
aihelp " how to implement quicksort in Julia? "Pertanyaan tindak lanjut :
aihelp! " Can you elaborate on the `sort` function? " Catatan: The ! diperlukan untuk pertanyaan tindak lanjut. aihelp! Tidak menambahkan konteks baru/informasi lebih lanjut - untuk melakukan itu, Anda perlu mengajukan pertanyaan baru.
Pilih model yang lebih cepat : misalnya, untuk pertanyaan sederhana, GPT 3.5 mungkin cukup, jadi gunakan alias "gpt3t":
aihelp " Elaborate on the `sort` function and quicksort algorithm " gpt3t [ Info: Done generating response. Total cost: $0.002 -->
AIMessage("The `sort` function in programming languages, including Julia.... continues for a while!
Debugging : Bagaimana Anda mendapatkan jawaban itu? Periksa "konteks" yang disediakan untuk model AI (yaitu, cuplikan dokumentasi yang digunakan untuk menghasilkan jawabannya):
AIHelpMe . pprint (AIHelpMe . last_result ())
# Output: Pretty-printed Question + Context + Answer with color highlightsSorotan warna menunjukkan kepada Anda kata -kata mana yang tidak didukung oleh konteks yang disediakan (magenta = benar -benar baru, biru = sebagian baru). Ini adalah cara yang cukup dan intuitif untuk melihat nama atau variabel fungsi mana yang dibuat versus yang mana yang ada dalam konteksnya.
Anda dapat mengubah kwargs dari pprint untuk menyembunyikan anotasi atau berpotensi menunjukkan konteks yang mendasarinya (cuplikan dari dokumentasi):
AIHelpMe . pprint (AIHelpMe . last_result (); add_context = true , add_scores = false )Tip
Hasil Anda akan meningkat secara signifikan jika Anda mengaktifkan peringkat ulang konteks yang disediakan untuk model (misalnya, aihelp(..., rerank=true) ) atau ubah pipa menjadi update_pipeline!(:silver) . Ini membutuhkan pengaturan kunci API cohere tetapi gratis untuk penggunaan komunitas.
Tip
Apakah Anda ingin menjalankan kode yang dihasilkan dengan aman? Gunakan AICode dari PromptingTools.Experimental.AgentToolsAI. . Ini dapat mengeksekusi kode dalam modul awal dan menangkap kesalahan jika terjadi (misalnya, berlaku langsung untuk respons AIMessage seperti AICode(msg) ).
Memperhatikan beberapa jawaban aneh? Tolong beri tahu kami! Lihat bagian "Bantu kami meningkatkan dan men -debug" di bagian tingkat lanjut dari dokumen!
Merumuskan pertanyaan :
Contoh kueri :
aihelp"What is a DataFrame in Julia?"aihelp"best practices for error handling in Julia"gpt4taihelp!"Could you provide an example?"err ): # # define mock function to trigger method error
f (x :: Int ) = x ^ 2
f ( Int8 ( 2 ))
# we get: ERROR: MethodError: no method matching f(::Int8)
# Help is here:
aihelp " What does this error mean? $ err " # Note the $err to interpolate the stacktrace [ Info: Done generating response. Total cost: $0.003
AIMessage("The error message "MethodError: no method matching f(::Int8)" means that there is no method defined for function `f` that accepts an argument of type `Int8`. The error message also provides the closest candidate methods that were found, which are `f(::Any, !Matched::Any)` and `f(!Matched::Int64)` in the specified file `embed_all.jl` at lines 45 and 61, respectively.")
Paket secara default kapal dengan embeddings pra-diproses untuk semua pustaka Julia Standard, DataFrames dan PromptingTools. Berkat sistem artefak Julia yang luar biasa, embeddings ini diunduh/di -cache/dimuat setiap kali paket dimulai.
Catatan: Fungsi di bawah ini belum diekspor. Awalkan mereka dengan AIHelpMe. untuk menggunakannya.
AIHELPME memungkinkan pengguna untuk meningkatkan kemampuannya dengan menyematkan dokumentasi dari modul Julia yang dimuat. Memanfaatkan new_index = build_index(module) untuk membuat indeks untuk modul tertentu (atau vektor modul).
Untuk memperbarui indeks yang ada, termasuk paket yang baru diimpor, gunakan new index = update_index(module) atau hanya update_index() untuk memasukkan semua modul yang tidak diakui. Kami akan menambah dan hanya menanamkan dokumentasi baru untuk menghindari duplikasi dan biaya yang tidak perlu.
Setelah indeks dibangun atau diperbarui, Anda dapat memilih untuk membuat serialisasi untuk digunakan nanti atau mengaturnya sebagai indeks utama.
Untuk menggunakan indeks Anda yang baru dibuat sebagai sumber utama untuk kueri, jalankan load_index!(new_index) . Atau, muat indeks yang sudah ada sebelumnya dari file menggunakan load_index!(file_path) .
Indeks utama untuk kueri diadakan di variabel global AIHelpMe.MAIN_INDEX .
AIHELPME memanfaatkan pendorong Tools.jl untuk berkomunikasi dengan model AI.
Kami menerapkan pola pengambilan augment generasi (RAG), yaitu,
Ini memastikan bahwa jawabannya tidak hanya didasarkan pada pengetahuan AI umum tetapi juga secara khusus dirancang untuk ekosistem dan praktik terbaik Julia.
"Paket pengetahuan" bersumber dari situs dokumentasi dan kemudian diproses dengan docsscraper.jl.
Catatan
Jika Anda ingin mengatur proses otomatis untuk membuat paket pengetahuan baru untuk beberapa paket/organisasi, beri tahu kami!
T: Apakah mahal untuk menyematkan semua dokumentasi saya? A: Tidak, menanamkan serangkaian dokumentasi yang komprehensif secara mengejutkan hemat biaya. Menanamkan sekitar 170 modul, termasuk semua perpustakaan standar dan lebih banyak, biaya sekitar 8 sen dan membutuhkan waktu kurang dari 30 detik. Untuk menghemat uang Anda, kami telah menyematkan Perpustakaan Julia Standard dan membuatnya tersedia untuk diunduh melalui artefak. Kami berharap bahwa ekstensi basis pengetahuan lebih lanjut harus paling banyak beberapa sen (lihat memperluas basis pengetahuan).
T: Berapa biaya untuk mengajukan pertanyaan? A: Setiap kueri hanya menimbulkan sebagian kecil dari satu sen, tergantung pada panjang dan model yang dipilih.
T: Dapatkah saya menggunakan kunci API uji coba cohere untuk proyek komersial? A: Tidak, kunci percobaan hanya untuk tujuan pengujian. Tetapi hanya dibutuhkan beberapa klik untuk beralih ke API produksi. Biaya hanya $ 1 per 1000 pencarian (!!!) dan memiliki banyak manfaat lainnya.
T: Seberapa akurat jawabannya? A: Seperti jawaban AI generatif lainnya, yaitu, itu tergantung dan Anda harus selalu memeriksa ulang.
T: Dapatkah saya menggunakannya tanpa internet? A: Tidak saat ini. Ini mungkin di masa depan, karena compasedtools.jl mendukung LLM lokal.
T: Mengapa kita membutuhkan kunci API cohere? A: API Cohere digunakan untuk menata ulang cuplikan pencocokan terbaik dari dokumentasi. Ini gratis untuk digunakan dalam jumlah terbatas (yaitu, ~ ribuan permintaan per bulan), yang seharusnya cukup bagi sebagian besar pengguna. Peringkat ulang meningkatkan kualitas dan keakuratan jawaban.
T: Mengapa kita membutuhkan Kunci API yang Tavily? A: API Tavily digunakan untuk mencari cuplikan pencocokan terbaik dari dokumentasi. Ini gratis untuk digunakan dalam jumlah terbatas (yaitu, ~ ribuan permintaan per bulan), yang seharusnya cukup bagi sebagian besar pengguna. Pencarian meningkatkan kualitas dan keakuratan jawaban.
T: Dapatkah kita menggunakan model Ollama (yang di-host lokal)? A: Ya, lihat bagian Lanjutan di Documents.
T: Bagaimana cara membangun paket pengetahuan untuk paket saya? A: Lihat paket docsscraper.jl. Itu yang kami gunakan untuk membangun paket pengetahuan yang dimuat dalam paket ini!
Aihelpme terus berkembang. Pembaruan di masa depan mungkin termasuk:
Harap dicatat bahwa ini hanyalah pra -rilis - kami masih memiliki jalan panjang untuk ...