تحذير
هذه الحزمة تجريبية وفي مرحلة مبكرة من تطويرها. كن حذرا إذا كنت تستخدمه في الإنتاج.
Spehulak.jl عبارة عن حزمة لإمكانية ملاحظة GenAI - مما يساعدك على فهم ما يحدث داخل نموذج GenAI الخاص بك. وهو يوفر مجموعة من الأدوات لفحص وتقييم الآثار المحفوظة عبر PromptingTools.jl.
أضفه إلى بيئتك ببساطة باستخدام:
using Pkg
Pkg . activate ( " . " )
Pkg . add ( " Spehulak " )
ثم ابدأ التطبيق بـ
using Spehulak
launch () # starts an asynchronous server on 9001
افتح المتصفح وانتقل إلى http://localhost:9001
.
يمكن لـ Spehulak تحميل أي محادثات LLM متسلسلة أو نتائج RAG المحفوظة عبر PromptingTools.jl (أي ملفات JSON).
هناك خياران:
على سبيل المثال، قم بتحميل ملف log/conversation...
في هذا الريبو.
هناك صفحتان: 1) متصفح المحادثة و2) عارض RAG. يمكنك التبديل بينهما من خلال النقر على الأيقونات الموجودة على الجانب الأيسر.
يعرض متصفح المحادثة جميع المحادثات المحملة ومكدسة عموديًا، حتى تتمكن من تصفح الآثار بسرعة وملاحظة السلوكيات الغريبة.
يعرض RAG Viewer دائمًا RAGResult
واحدة فقط ولكنه يفعل ذلك مع قدر كبير من التفاصيل (على سبيل المثال، محادثة المستخدم، وسلاسل LLM تحت الغطاء، والمصادر، والسياق، وتصنيف/تضمين المرشحين، وما إلى ذلك).
لمساعدتك في التنقل، يمكنك استخدام الأسهم الموجودة في الزاوية اليمنى العليا: '<' اذهب إلى السابق، '>' اذهب إلى التالي، وأيقونة النرد للاختيار العشوائي. يمكنك استخدام أدوات التنقل هذه لكل من متصفح المحادثة وRAG Viewer.
في حالة متصفح المحادثة، يمكنك أيضًا التصفية بحثًا عن كلمات رئيسية محددة ( occursin
ذلك تحت الغطاء). فقط اكتب بعض الكلمات الرئيسية واضغط على ENTER. سيحتفظ فقط بالمحادثات التي تحتوي على الكلمة الأساسية.
نصيحة
عند تصفية المحادثات، قم أولاً بالتصفية باستخدام Spehulak لتقليل عدد المحادثات المعروضة ثم استخدمها في أداة بحث المتصفح لتسليط الضوء على جميع تكرارات الكلمة الرئيسية المطلوبة.
ماذا يمكن أن تفعل؟ تصفح أي محادثات LLM متسلسلة. إذا استخدمت رسائل تم تتبعها، فسنعرض جميع البيانات التعريفية ذات الصلة أيضًا (النموذج، والقوالب، وإصدارات القالب، وما إلى ذلك).
كيف أقوم بحفظ/تسجيل محادثات LLM الخاصة بي تلقائيًا؟ راجع مستندات PromptingTools.jl
أو قم بإنشاء بعض أمثلة الألعاب
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)
من المفترض أن تشاهد بعض الملفات التي تم إنشاؤها في log/
- حاول فتحها باستخدام Spehulak!
كيف أحفظ نتائج RAG الخاصة بي؟
يعد حفظ RAGResult
للتحليلات المستقبلية أمرًا بسيطًا مثل JSON3.write(path, result)
المثال الكامل:
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)
الآن، يمكنك فحص تفاصيلها مع Spehulak!
ما هو سبهولاك؟
"Špehulak" (تُنطق "shpeh-hoo-lahk") تمزج بين كلمتي "جاسوس" و"رجل ثلج"، وهي تتناغم مع الكلمات التشيكية "špeh" التي تعني جاسوس و"sněhulák" التي تعني رجل الثلج. إنه اسم ممتع لمنصة إمكانية المراقبة لأن الأمر كله يتعلق بمراقبة العين الساهرة، مثل الجاسوس، بينما يلعب دور رجل الثلج دور رجل الثلج ليكون هادئًا تحت الضغط أثناء التدقيق في أكوام من البيانات بالإضافة إلى كونه غير مرئي/في الخلفية، وليس في الخلفية. طريق. إنها مثالية للتعمق في الأعمال الداخلية لتطبيقات LLM الخاصة بك!
MultiCandidateChunks
) لن يكون هذا المشروع ممكنًا بدون Stipple.jl المذهل من عائلة Genie.jl!