Aihelpme ควบคุมพลังของเอกสารที่กว้างขวางของจูเลียและโมเดล AI ขั้นสูงเพื่อให้คำแนะนำการเข้ารหัสที่ปรับแต่ง ด้วยการรวมเข้ากับ proftingtools.jl มันมีวิธีการที่ไม่เหมือนใครและช่วยในการตอบคำถามการเข้ารหัสของคุณโดยตรงในสภาพแวดล้อมของจูเลีย
คำเตือน
นี่เป็นเพียงต้นแบบ! เรายังไม่ได้ปรับมันดังนั้นไมล์สะสมของคุณอาจแตกต่างกันไป! ตรวจสอบผลลัพธ์ของคุณจาก LLM เสมอ!
ในการติดตั้ง AIHELPME ให้ใช้ Julia Package Manager และชื่อแพ็คเกจ:
using Pkg
Pkg . add ( " AIHelpMe " )ข้อกำหนดเบื้องต้น:
All setup should take less than 5 minutes!
การใช้งานขั้นพื้นฐาน :
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.")
หมายเหตุ: เป็นค่าเริ่มต้นเราโหลดเฉพาะเอกสาร Julia และเอกสารสำหรับไลบรารีมาตรฐาน รุ่นเริ่มต้นที่ใช้คือ GPT-4 Turbo
คุณสามารถพิมพ์คำตอบได้สวยโดยใช้ pprint หากคุณส่งคืน ragresult เต็ม ( 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
หมายเหตุ: คุณสามารถเห็นโมเดลโกงเพราะสามารถดูเอกสารนี้ได้มาก ...
Macro aihelp :
aihelp " how to implement quicksort in Julia? "คำถามติดตาม :
aihelp! " Can you elaborate on the `sort` function? " หมายเหตุ: ! จำเป็นสำหรับคำถามติดตามผล aihelp! ไม่เพิ่มบริบทใหม่/ข้อมูลเพิ่มเติม - ในการทำเช่นนั้นคุณต้องถามคำถามใหม่
เลือกโมเดลที่เร็วกว่า : เช่นสำหรับคำถามง่าย ๆ GPT 3.5 อาจเพียงพอดังนั้นให้ใช้นามแฝง "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!
การดีบัก : คุณหาคำตอบนั้นได้อย่างไร? ตรวจสอบ "บริบท" ที่มีให้กับโมเดล AI (เช่นเอกสารตัวอย่างเอกสารที่ใช้ในการสร้างคำตอบ):
AIHelpMe . pprint (AIHelpMe . last_result ())
# Output: Pretty-printed Question + Context + Answer with color highlightsไฮไลท์สีแสดงให้คุณเห็นว่าคำใดที่ไม่ได้รับการสนับสนุนจากบริบทที่ให้ไว้ (Magenta = ใหม่สมบูรณ์, สีน้ำเงิน = ใหม่บางส่วน) มันเป็นวิธีที่ค่อนข้างง่ายและใช้งานง่ายในการดูว่าชื่อฟังก์ชันหรือตัวแปรใดที่ถูกสร้างขึ้นเมื่อเทียบกับชื่อที่อยู่ในบริบท
คุณสามารถเปลี่ยน kwargs ของ pprint เพื่อซ่อนคำอธิบายประกอบหรืออาจแสดงบริบทพื้นฐาน (ตัวอย่างจากเอกสาร):
AIHelpMe . pprint (AIHelpMe . last_result (); add_context = true , add_scores = false )เคล็ดลับ
ผลลัพธ์ของคุณจะดีขึ้นอย่างมากหากคุณเปิดใช้งานการจัดอันดับบริบทใหม่ให้กับโมเดล (เช่น aihelp(..., rerank=true) ) หรือเปลี่ยนไปป์ไลน์เป็น update_pipeline!(:silver) มันต้องมีการตั้งค่าคีย์ API Cohere แต่ฟรีสำหรับการใช้งานชุมชน
เคล็ดลับ
คุณต้องการเรียกใช้รหัสที่สร้างขึ้นอย่างปลอดภัยหรือไม่? ใช้ AICode จาก PromptingTools.Experimental.AgentToolsAI. - มันสามารถเรียกใช้รหัสในโมดูลรอยขีดข่วนและจับข้อผิดพลาดหากเกิดขึ้น (เช่นใช้โดยตรงกับการตอบสนอง AIMessage เช่น AICode(msg) )
สังเกตเห็นคำตอบแปลก ๆ ? โปรดแจ้งให้เราทราบ! ดูหัวข้อ "ช่วยเราปรับปรุงและแก้ไขข้อบกพร่อง" ในส่วนขั้นสูงของเอกสาร!
Formulating Questions :
แบบสอบถามตัวอย่าง :
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.")
แพ็คเกจโดยเรือเริ่มต้นที่มีการฝังตัวที่ผ่านการประมวลผลล่วงหน้าสำหรับไลบรารีมาตรฐาน Julia ทั้งหมด DataFrames และ PreftingTools ต้องขอบคุณระบบสิ่งประดิษฐ์ Julia ที่น่าทึ่งการฝังตัวเหล่านี้จะถูกดาวน์โหลด/แคช/โหลดทุกครั้งที่แพ็คเกจเริ่มต้นขึ้น
หมายเหตุ: ฟังก์ชั่นด้านล่างยังไม่ได้ส่งออก นำหน้าพวกเขาด้วย AIHelpMe. เพื่อใช้พวกเขา
AIHelpMe allows users to enhance its capabilities by embedding documentation from any loaded Julia module. ใช้งาน new_index = build_index(module) เพื่อสร้างดัชนีสำหรับโมดูลเฉพาะ (หรือเวกเตอร์ของโมดูล)
ในการอัปเดตดัชนีที่มีอยู่รวมถึงแพ็คเกจที่นำเข้าใหม่ให้ใช้ new index = update_index(module) หรือเพียง update_index() เพื่อรวมโมดูลที่ไม่รู้จักทั้งหมด เราจะเพิ่มและฝังเฉพาะเอกสารใหม่เพื่อหลีกเลี่ยงการทำซ้ำและค่าใช้จ่ายที่ไม่จำเป็น
เมื่อดัชนีถูกสร้างหรืออัปเดตแล้วคุณสามารถเลือกที่จะทำให้เป็นอนุกรมสำหรับการใช้งานในภายหลังหรือตั้งค่าเป็นดัชนีหลัก
หากต้องการใช้ดัชนีที่สร้างขึ้นใหม่ของคุณเป็นแหล่งหลักสำหรับการสืบค้นให้ดำเนินการ load_index!(new_index) อีกทางเลือกหนึ่งคือโหลดดัชนีที่มีอยู่ก่อนจากไฟล์โดยใช้ load_index!(file_path)
ดัชนีหลักสำหรับการสืบค้นจะจัดขึ้นในตัวแปรทั่วโลก AIHelpMe.MAIN_INDEX
Aihelpme ใช้ประโยชน์จากการแจ้งเตือน tools.jl เพื่อสื่อสารกับโมเดล AI
เราใช้รูปแบบการสร้างการเพิ่มการดึง (RAG) เช่น
สิ่งนี้ทำให้มั่นใจได้ว่าคำตอบนั้นไม่เพียง แต่ขึ้นอยู่กับความรู้ทั่วไปของ AI เท่านั้น แต่ยังได้รับการปรับให้เหมาะกับระบบนิเวศของจูเลียและแนวปฏิบัติที่ดีที่สุด
"ชุดความรู้" มาจากเว็บไซต์เอกสารแล้วประมวลผลด้วย docsscraper.jl
บันทึก
หากคุณต้องการตั้งค่ากระบวนการอัตโนมัติเพื่อสร้างชุดความรู้ใหม่สำหรับแพ็คเกจ/องค์กรบางอย่างโปรดแจ้งให้เราทราบ!
ถาม: มีราคาแพงที่จะฝังเอกสารทั้งหมดของฉันหรือไม่? ตอบ: ไม่การฝังชุดเอกสารที่ครอบคลุมนั้นคุ้มค่าอย่างน่าประหลาดใจ การฝังโมดูลประมาณ 170 โมดูลรวมถึงห้องสมุดมาตรฐานทั้งหมดและอื่น ๆ มีค่าใช้จ่ายประมาณ 8 เซนต์และใช้เวลาน้อยกว่า 30 วินาที เพื่อประหยัดเงินให้คุณเราได้ฝังไลบรารี Julia Standard ไว้แล้วและทำให้พวกเขาสามารถดาวน์โหลดได้ผ่าน Artifacts เราคาดหวังว่าการขยายฐานความรู้เพิ่มเติมใด ๆ ควรเป็นเพียงไม่กี่เซ็นต์ (ดูการขยายฐานความรู้)
ถาม: คำถามถามคำถามราคาเท่าไหร่? ตอบ: การสืบค้นแต่ละครั้งมีเพียงเศษเสี้ยวของเปอร์เซ็นต์ขึ้นอยู่กับความยาวและแบบจำลองที่เลือก
Q: Can I use the Cohere Trial API Key for commercial projects? A: No, a trial key is only for testing purposes. But it takes only a few clicks to switch to Production API. ค่าใช้จ่ายเพียง $ 1 ต่อ 1,000 การค้นหา (!!!) และมีประโยชน์อื่น ๆ อีกมากมาย
ถาม: คำตอบที่แม่นยำแค่ไหน? ตอบ: เช่นเดียวกับคำตอบ AI อื่น ๆ เช่นมันขึ้นอยู่กับและคุณควรตรวจสอบอีกครั้ง
ถาม: ฉันสามารถใช้งานได้โดยไม่ต้องใช้อินเทอร์เน็ตได้หรือไม่? ตอบ: ไม่ใช่ในขณะนี้ อาจเป็นไปได้ในอนาคตเนื่องจากการแจ้งเตือน tools.jl รองรับ LLM ในท้องถิ่น
ถาม: ทำไมเราต้องใช้คีย์ Cohere API? ตอบ: API ของ Cohere ใช้ในการจัดอันดับตัวอย่างที่ดีที่สุดอีกครั้งจากเอกสารประกอบ ใช้งานได้ฟรีในปริมาณที่ จำกัด (เช่น ~ นับพันคำขอต่อเดือน) ซึ่งน่าจะเพียงพอสำหรับผู้ใช้ส่วนใหญ่ การจัดอันดับใหม่ช่วยเพิ่มคุณภาพและความแม่นยำของคำตอบ
ถาม: ทำไมเราต้องใช้คีย์ Tavily API? ตอบ: API ของ Tavily ใช้เพื่อค้นหาตัวอย่างที่ดีที่สุดจากเอกสาร ใช้งานได้ฟรีในปริมาณที่ จำกัด (เช่น ~ นับพันคำขอต่อเดือน) ซึ่งน่าจะเพียงพอสำหรับผู้ใช้ส่วนใหญ่ การค้นหาช่วยปรับปรุงคุณภาพและความแม่นยำของคำตอบ
ถาม: เราสามารถใช้โมเดล Ollama (โฮสต์ในท้องถิ่น) ได้หรือไม่? ตอบ: ใช่ดูส่วนขั้นสูงในเอกสาร
Q: How can I build knowledge packs for my package(s)? ตอบ: ตรวจสอบแพ็คเกจ docsscraper.jl มันคือสิ่งที่เราใช้ในการสร้างชุดความรู้ที่โหลดในแพ็คเกจนี้!
Aihelpme มีการพัฒนาอย่างต่อเนื่อง การอัปเดตในอนาคตอาจรวมถึง:
โปรดทราบว่านี่เป็นเพียงการเปิดตัวก่อน - เรายังคงมีทางไปอีกนาน ...