AIHELPME nutzt die Kraft der umfangreichen Dokumentation und fortgeschrittenen KI -Modelle von Julia, um maßgeschneiderte Codierungsanleitungen zu liefern. Durch die Integration in die AufregungsTools.jl bietet es einen einzigartigen, AI-unterstützten Ansatz, um Ihre Codierungsanfragen direkt in Julias Umgebung zu beantworten.
Vorsicht
Dies ist nur ein Prototyp! Wir haben es noch nicht abgestimmt, also kann Ihre Kilometerleistung variieren! Überprüfen Sie Ihre Ergebnisse immer von LLMs!
Verwenden Sie den Julia Paket Manager und den Paketnamen, um aIHelpme zu installieren:
using Pkg
Pkg . add ( " AIHelpMe " )Voraussetzungen:
Alle Setups sollten weniger als 5 Minuten dauern!
Grundnutzung :
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.")
Hinweis: Standardmäßig laden wir nur die Julia -Dokumentation und Dokument für Standardbibliotheken. Das verwendete Standardmodell ist GPT-4 Turbo.
Sie können die Antwort mit pprint ziemlich zeichnen, wenn Sie den vollständigen RAGRESULT ( return_all=true ) zurückgeben:
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
Hinweis: Sie können das Modell betrogen sehen, da es genau diese Dokumentation sehen kann ...
aihelp -Makro :
aihelp " how to implement quicksort in Julia? "Follow-up-Fragen :
aihelp! " Can you elaborate on the `sort` function? " Hinweis: Die ! ist für Follow-up-Fragen erforderlich. aihelp! Fügt keinen neuen Kontext/weitere Informationen hinzu - dazu müssen Sie eine neue Frage stellen.
Wählen Sie schnellere Modelle : z. B. für einfache Fragen, GPT 3.5 könnte ausreichen. Verwenden Sie also den 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 : Wie sind Sie auf diese Antwort gekommen? Überprüfen Sie den "Kontext" dem KI -Modell (dh die Dokumentationsausschnitte, mit denen die Antwort generiert wurde):
AIHelpMe . pprint (AIHelpMe . last_result ())
# Output: Pretty-printed Question + Context + Answer with color highlightsDie Farb -Highlights zeigen Ihnen, welche Wörter nicht durch den bereitgestellten Kontext unterstützt wurden (Magenta = völlig neu, blau = teilweise neu). Es ist eine ziemlich und intuitive Möglichkeit zu sehen, welche Funktionsnamen oder Variablen zusammengesetzt sind, im Vergleich zu welchen im Kontext.
Sie können die KWARGs von pprint ändern, um die Anmerkungen zu verbergen, oder möglicherweise sogar den zugrunde liegenden Kontext (Ausschnitte aus der Dokumentation) zeigen:
AIHelpMe . pprint (AIHelpMe . last_result (); add_context = true , add_scores = false )Tipp
Ihre Ergebnisse werden sich erheblich verbessern, wenn Sie es ermöglichen, den Kontext erneut zu richten, der dem Modell (z. B. aihelp(..., rerank=true) ) oder der Pipeline in aktualisiertes update_pipeline!(:silver) zur Verfügung gestellt werden kann. Es erfordert das Einrichten von Cohere -API -Schlüssel, ist jedoch kostenlos für die Nutzung der Community.
Tipp
Möchten Sie den generierten Code sicher ausführen? Verwenden Sie AICode von PromptingTools.Experimental.AgentToolsAI. . Es kann den Code in einem Scratch -Modul ausgeführt und Fehler aufnehmen, wenn sie auftreten (z. B. direkt für die AIMessage -Antwort wie AICode(msg) ).
Bemerkte einige seltsame Antworten? Bitte lassen Sie es uns wissen! Siehe Abschnitt "Hilf uns zu verbessern und zu debuggen" im erweiterten Abschnitt der Dokumente!
Fragen formulieren :
Beispielabfragen :
aihelp"What is a DataFrame in Julia?"aihelp"best practices for error handling in Julia"gpt4taihelp!"Could you provide an example?"err -Rep -Variable): # # 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.")
Das Paket wird standardmäßig mit vorverarbeiteten Einbettungen für alle Julia-Standardbibliotheken, Datenrahmen und Aufregungspunkte ausgeliefert. Dank des erstaunlichen Julia -Artefaktsystems werden diese Einbettungen jedes Mal heruntergeladen/zwischengespeichert/geladen, wenn das Paket beginnt.
Hinweis: Die folgenden Funktionen werden noch nicht exportiert. Präfix sie mit AIHelpMe. sie benutzen.
Mit AIHELPME können Benutzer ihre Funktionen verbessern, indem sie Dokumentation aus einem beladenen Julia -Modul einbetten. Verwenden Sie new_index = build_index(module) um einen Index für ein bestimmtes Modul (oder einen Vektor von Modulen) zu erstellen.
Um einen vorhandenen Index, einschließlich neu importierter Pakete, zu aktualisieren, verwenden Sie new index = update_index(module) oder einfach update_index() um alle nicht erkannten Module einzuschließen. Wir werden nur die neue Dokumentation hinzufügen und einbetten, um unnötige Doppelarbeit und Kosten zu vermeiden.
Sobald ein Index erstellt oder aktualisiert wurde, können Sie ihn für die spätere Verwendung serialisieren oder als Primärindex festlegen.
Führen Sie load_index!(new_index) aus, um Ihren neu erstellten Index als Hauptquelle für Abfragen zu verwenden. Laden Sie alternativ einen bereits bestehenden Index aus einer Datei mit load_index!(file_path) .
Der Hauptindex für Abfragen finden Sie im globalen variablen AIHelpMe.MAIN_INDEX .
AIHELPME nutzt die Aufforderung an die KI -Modelle.
Wir wenden ein RAG -Muster (Abruf Augment Generation (LAG) an, dh, dh,
Dies stellt sicher, dass die Antworten nicht nur auf allgemeinem KI -Wissen beruhen, sondern auch speziell auf Julias Ökosystem und Best Practices zugeschnitten sind.
Die "Knowledge Packs" werden von Dokumentationsstellen bezogen und dann mit docssscraper.jl verarbeitet.
Notiz
Wenn Sie einen automatisierten Prozess einrichten möchten, um ein neues Wissenspaket für ein Paket/eine Organisation zu erstellen, lassen Sie es uns wissen!
F: Ist es teuer, meine gesamte Dokumentation einzubetten? A: Nein, das Einbetten einer umfassenden Dokumentation ist überraschend kostengünstig. Das Einbetten von rund 170 Modulen, einschließlich aller Standardbibliotheken und mehr, kostet ungefähr 8 Cent und dauert weniger als 30 Sekunden. Um Ihnen Geld zu sparen, haben wir die Julia Standard Libraries bereits eingebettet und sie über Artefakte zum Download zur Verfügung gestellt. Wir gehen davon aus, dass alle weiteren Wissensbasisverlängerungen höchstens einige Cent betragen sollten (siehe Erweiterung der Wissensbasis).
F: Wie viel kostet es, eine Frage zu stellen? A: Jede Abfrage verursacht je nach Länge und ausgewähltes Modell nur einen Bruchteil eines Cent.
F: Kann ich den Cohere -Test -API -Schlüssel für kommerzielle Projekte verwenden? A: Nein, ein Versuchschlüssel ist nur zu Testzwecken. Aber es braucht nur wenige Klicks, um zur Produktions -API zu wechseln. Die Kosten betragen nur 1 USD pro 1000 Suchanfragen (!!!) und haben viele andere Vorteile.
F: Wie genau sind die Antworten? A: Wie bei jedem anderen generativen KI-Antworten hängt es ab und Sie sollten immer überprüfen.
F: Kann ich es ohne Internet verwenden? A: Nicht im Moment. Es könnte in Zukunft möglich sein, da die AufregungsTools.jl lokale LLMs unterstützt.
F: Warum brauchen wir Cohere API -Schlüssel? A: Coheres API wird verwendet, um die besten passenden Ausschnitte aus der Dokumentation neu zu erreichen. Es ist kostenlos, in begrenzten Mengen (dh ~ tausend Anfragen pro Monat) zu verwenden, was für die meisten Benutzer ausreichen sollte. Das erneute Ranging verbessert die Qualität und Genauigkeit der Antworten.
F: Warum brauchen wir einen Tavily -API -Schlüssel? A: Die API von Tavily wird verwendet, um die besten passenden Snippets aus der Dokumentation zu durchsuchen. Es ist kostenlos, in begrenzten Mengen (dh ~ tausend Anfragen pro Monat) zu verwenden, was für die meisten Benutzer ausreichen sollte. Die Suche verbessert die Qualität und Genauigkeit der Antworten.
F: Können wir Ollama (lokal gehostete) Modelle verwenden? A: Ja, siehe den fortgeschrittenen Abschnitt in den Dokumenten.
F: Wie kann ich Wissenspakete für meine Pakete erstellen? A: Schauen Sie sich das Paket docsSsScraper.jl an. Es ist das, was wir verwenden, um die in diesem Paket geladenen Wissenspakete zu erstellen!
Aihelpme entwickelt sich ständig weiter. Zukünftige Updates können enthalten:
Bitte beachten Sie, dass dies nur eine Vorveröffentlichung ist - wir haben noch einen langen Weg vor uns ...