______ ______ ___ ____ / ____ / ___ / ____ / __ ____ / | / _// // __/ __ / __/ _ / __ // | | / / / / / / _ / / / _ / / / _ / / __ / / / / ___ | _ / / a Rich Terminal Interface Chat ____/ ____/ ____/ ___/_/_/_/| _/___/geschrieben in go. Bauen Sie einfache, sichere, skalierbare Systeme mit Go. Copyright (© ️) 2024 @h0llyw00DZZ Alle Rechte vorbehalten.
Hinweis: Dieses Repository ist eine laufende Arbeit (WIP).
Geschätzte Ankunftszeit (ETA): Unbekannt . Dieses Projekt wird während meiner Freizeit persönlich entwickelt und ist mit keinem Unternehmens- oder Unternehmensunternehmen verbunden.
Interessant, es in Terminal zu bauen, nachdem Sie die Reise durch die Go -Programmiersprache auf Tourneen bewegt haben, sowie die Erkundung der KI -Funktionen von Google (derzeit in Beta mit Gemini).
Notiz
Dieses Repository wurde speziell entwickelt, um sich an idiomatische GO -Prinzipien zu halten. ?
Die Entwicklung in GO fördert die Skalierbarkeit. Das leistungsorientierte Design unterstützt die gleichzeitige Verarbeitung und ein effizientes Ressourcenmanagement und macht es zu einer hervorragenden Wahl für Anwendungen, die mit zunehmender Nachfrage nahtlos skaliert werden müssen.
Die Gedächtnisverwaltung von Go und statische Typisierung verringert das Auftreten kritischer Fehler wie Speicherlecks, die in interpretierten Sprachen weit verbreitet sind, erheblich. Diese Stabilität ist für langjährige Terminalanwendungen von entscheidender Bedeutung, die mit KI-Diensten interagieren.
Notiz
Memory leaks sind ein kritisches Problem, insbesondere bei der KI -Entwicklung. GOs Ansatz zur Speicherverwaltung unterscheidet es, da es solche Probleme effektiver mindert als einige andere Sprachen. Dies steht in starkem Gegensatz zu zahlreichen Repositorys in anderen Sprachen, in denen Speicherlecks ein häufiges und oft verwirrendes Problem sind (das ich verdammt noch mal nicht verstehe, wenn andere Repo in github aussieht).
GitHub das ich nicht verstehe. Lustige Tatsache : Wusstest du? Wenn Ihr Go Code einem Dschungel von if -Anweisungen ähnelt (denken Sie an 10 verschachtelte Schichten-ein großes Nein-Nein!), Ist es weniger Go und mehr Stop-and-ask-for-directions . Führen Sie diese Bedingungen ab und lassen Sie Ihren Code so reibungslos laufen wie ein gefetteter gopher auf einer Slip'n -Folie! ?
Notiz
Diese Realistic Typing Animation ist hinsichtlich des Ressourcenverbrauchs (z. B. memory,cpu ) im Gegensatz zu front-end languages oder other languages .
:quit beispielsweise können Benutzer ihre Sitzung ordentlich beenden. Wenn dieser Befehl ausgeführt wird, fordert er eine kooperative Abschaltsequenz mit der KI auf, die eine geeignete Abschiedsnachricht erzeugt. Dieses nachdenkliche Design verbessert die Benutzererfahrung, indem ein natürlicher und höflicher Konversationsverschluss bereitgestellt wird, um sicherzustellen, dass die Sitzungsbeendigung genauso engagiert ist wie das Gespräch selbst.DebugOrErrorLogger Das DebugOrErrorLogger -Paket bietet ein optimiertes und effizientes Protokollierungssystem, das speziell für GO -Anwendungen entwickelt wurde, für die robuste Fehler- und Debugg -Protokollierungsfunktionen mit minimalem Overhead erforderlich sind.DebugOrErrorLogger Schlüsselfunktionen ? Bedingte Debug -Protokollierung : Mit dem Protokoll können Debug -Nachrichten basierend auf der Umgebungsvariablen DEBUG_MODE bedingt ausgegeben werden. Wenn Sie auf true gesetzt sind, werden detaillierte Debug -Informationen auf os.Stderr gedruckt, was dem Entwicklungs- und Fehlerbehebungsprozess unterstützt wird.
? Farbcodierte Fehlerausgabe : Fehler werden beim Anmeldung rot eindeutig farbig gefärbt, so Diese Farbe hilft bei der schnellen Identifizierung von Fehlern inmitten anderer Protokollausgänge.
? ? Panikwiederherstellung : Eine Wiederherstellungsfunktion wird bereitgestellt, um alle Paniken, die während der Laufzeit auftreten können, anmutig zu verarbeiten und zu protokollieren. Diese Funktion stellt sicher, dass eine Panikmeldung eindeutig mit farbiger Ausgabe angemeldet ist, wodurch die Anwendung unerwartet abstürzt und bei der schnellen Diagnose hilft.
⚡ Einfache API : Das Paket enthält eine einfache und intuitive API mit Methoden zur Debug- und Fehlerprotokollierung, die Formatzeichenfolgen und variadische Argumente akzeptieren, ähnlich wie die Standard Printf und Println -Funktionen.
? Konfiguration der Umgebungsvariablen : Der Debug -Modus kann leicht durch eine Umgebungsvariable ein- oder ausgeschaltet werden, sodass eine flexible Konfiguration ermöglicht, ohne dass die Anwendung neu kompiliert werden muss.
Notiz
Die oben aufgeführten Current Features können veraltet sein. Für die neuesten Feature -Updates lesen Sie die Dokumentation here .
Notiz
Der Begriff Streamlined Codebase bezieht sich auf ein hochrangiges, gemeinsames Muster in Go Programmierung. Dieses Muster betont eine saubere und gut organisierte Struktur, die das Verständnis und die Aufrechterhaltung des Codes erleichtert. In der Regel werden Bedenken, modularisierende Komponenten und idiomatische Praktiken zu trennen, um eine Codebasis zu erstellen, die sowohl effizient als auch einfach zu arbeiten ist.
Notiz
Dieses spezielle Feature, besser als Code, ähnelt einem Dschungel von if if if if ,
Durch die Übernahme dieses skalierbaren Befehlsbehandlungssystems ist die Chat-Anwendung gut positioniert, um sich neben den Fortschritten in der KI- und Benutzererwartungen weiterzuentwickeln und ein robustes und zukunftssicheres Benutzererlebnis zu gewährleisten.
Notiz
Probanden Planung, um Funktionen kontinuierlich zu verbessern und hinzuzufügen, wodurch die Funktionalität verbessert wird, ohne unnötige Komplexität hinzuzufügen. Bleiben Sie auf dem Laufenden für Updates!
Go ist so konzipiert, dass sie unkompliziert und effizient sein und die unnötigen Komplexität (Fick -Komplexität, das ist go -komplexe Komplexitäten), die häufig in anderen Programmiersprachen auftreten.
Optimierte Ressourcenauslastung : Der Chat von GoGenai Terminal wird entwickelt, um die Leistung zu maximieren und gleichzeitig die Ressourcenverbrauch zu minimieren. Durch die Nutzung des effizienten Kompilierungs- und Ausführungsmodells von GO stellt die Anwendung schnelle Reaktionszeiten und niedrige Overheads sicher, sodass es ideal für Systeme ist, bei denen die Ressourcenkonservierung von größter Bedeutung ist.
Effizientes Parallelitätsmanagement : Dank der leichten Goroutinen von GO und effektiven Synchronisationsprimitiven geht GOGGENAI -Terminal -Chat mühelos gleichzeitige Vorgänge ab. Die Anwendung kann mehreren Benutzern gleichzeitig ohne signifikante Erhöhung der Latenz- oder Speicherverwendung dienen, um selbst unter Last eine konsistente Leistung zu gewährleisten.
Dieses Repository enthält einen hochwertigen GO-Code, der sich insbesondere auf Retry Policy Logic , Chat System Logic und Other konzentriert. Jede Funktion ist zur simplicity ausgelegt und vermeidet absichtlich unnötige stupid complexity , selbst in Szenarien, die möglicherweise einen stupid complexity von 10+ überschreiten könnten.
Um den Chat von GoGenai Terminal Interface zu verwenden, müssen Sie Docker auf Ihrem Computer installieren lassen. Wenn Sie Docker nicht installiert haben, folgen Sie bitte dem offiziellen Docker -Installationshandbuch.
Sobald Docker eingerichtet ist, können Sie das Bild aus Github -Paketen durch Ausführen ziehen:
docker pull ghcr.io/h0llyw00dzz/gogenai-terminal-chat:latestTipp
Für Master oder Advanced of Go Programming , insbesondere für solche in cloud engineering , kann dieser GoGenAI Terminal Interface Chat in einer Cloud Shell ( for example, Google Cloud Shell ) ohne Verwendung von Docker ausgeführt werden.
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um eine Chat -Sitzung mit GoGenai zu starten. Stellen Sie sicher, dass Sie YOUR_API_KEY durch den aktuellen API -Schlüssel ersetzen, der Ihnen zur Verfügung gestellt wird.
Warnung
Auf dieses Problem here , um eine Chat -Sitzung mit GoGenAI zu starten, ein besseres terminal zu verwenden, das eine constant in diesem Repository verarbeiten oder Ihr eigenes Betriebssystem mit einem besseren Kernel erstellen kann, das in diesem Repository constant verarbeitet wird
docker run -it --rm --name mychatapp -e API_KEY=YOUR_API_KEY ghcr.io/h0llyw00dzz/gogenai-terminal-chat:latestDieser Befehl startet die GoGenai Terminal Chat -Anwendung im interaktiven Modus. Sie können Ihre Nachrichten eingeben und Antworten von der KI empfangen.
Umgebungsvariablen sind Schlüsselwertpaare, die das Verhalten Ihrer Anwendung beeinflussen können. Im Folgenden finden Sie eine Tabelle der Umgebungsvariablen, die in der Anwendung von Gogenai-terminal-chat-Anwendung sowie deren Beschreibungen und der Frage, ob sie erforderlich sind, verwendet.
| Variable | Beschreibung | Erforderlich |
|---|---|---|
API_KEY | Ihr API -Schlüssel zum Zugriff auf das generative KI -Modell. Erhalten Sie hier einen kostenlosen API -Schlüssel. | Ja |
DEBUG_MODE | Setzen Sie auf true , um DEBUG_MODE zu aktivieren, oder false um es zu deaktivieren. | NEIN |
SHOW_PROMPT_FEEDBACK | Setzen Sie auf true , um ein promptes Feedback in der Antwortfußzeile anzuzeigen, oder false um es zu verbergen. | NEIN |
SHOW_TOKEN_COUNT | Setzen Sie auf true , um die Token -Anzahl anzuzeigen, die in der Antwort und Chat -Historie der KI verwendet wird, oder false um sie zu verbergen. | NEIN |
Notiz
Die Average Consumption Verbrauchsmetriken werden ohne die Verwendung eines Speichersystems wie eine Datenbank berechnet und basieren auf der Annahme, dass jede Funktion relativ einfach ist, wobei eine durchschnittliche zyklomatische Komplexität von 5 als Maximum ist. Der Verbrauch kann jedoch mit komplexeren Funktionen zunehmen (z. B. solche mit einer zyklomatischen Komplexität von 10 oder mehr, die nicht empfohlen werden).
Notiz
Die Average Maximum Consumption Verbrauchsmetriken basieren auf der Simulation des human Typierungsverhaltens. Dies beinhaltet den Charakter des Chat -Antwortens durch den Charakter, um den Rhythmus und das Tempo der human Typisierung nachzuahmen.
Warnung
Diese screenshots können aufgrund von Versionsänderungen veraltet sein.
Notiz
Das ? Simple Debugging ist einfach, im Gegensatz zu beschissenen eine komplexe Logik go codes , die die cyclomatic complexity erhöhen
? Sie: Hallo, bist du?
? AI :: Ich bin ein großes Sprachmodell, das von Google trainiert wurde.
? Sie: Ich habe eine Frage zu K8s, wie aktiviere ich Audit -Protokollierung in Kubernetes und wonach sollte ich bei der Analyse der Protokolle suchen?
? AI: Um die Protokollierung von Audit in Kubernetes zu aktivieren, können Sie die folgenden Schritte verwenden:
/etc/kubernetes/manifests/kube-apiserver.yaml befindet.audit-policy hinzu: enabled: true
Optional können Sie die folgenden Einstellungen konfigurieren:
policyFile : Der Pfad zu einer Datei, die die Prüfungsrichtlinienregeln enthält.logPath : Der Pfad zur Datei, in der die Audit -Protokolle gespeichert werden.logFormat : Das Format der Prüfungsprotokolle.maxBatchSize : Die maximale Anzahl von Audit -Ereignissen, die in eine einzelne Stapel enthalten sind.maxBatchWait : Die maximale Zeit, um auf eine Reihe von Prüfveranstaltungen zu warten, bevor sie auf die Festplatte geschrieben werden.Speichern und starten Sie den Kubernetes -API -Server neu.
Sobald die Prüfprotokollierung aktiviert ist, können Sie die Protokolle analysieren, um Einblicke in die Aktivität in Ihrem Kubernetes -Cluster zu erhalten. Einige Dinge, nach denen Sie suchen möchten, sind:
Durch die Analyse der Audit -Protokolle können Sie Sicherheitsrisiken identifizieren, Probleme beheben und ein besseres Verständnis dafür erlangen, wie Ihr Kubernetes -Cluster verwendet wird.
Hier sind einige zusätzliche Ressourcen, die Sie möglicherweise hilfreich finden:
$ go run cmd/main.go? AI: Hallo! Wie kann ich Ihnen heute helfen?
? Sie: Ich habe die Frage, dass dies korrekt ist, "Streben nach Einfachheit in jeder Funktion (zielen Sie auf eine zyklomatische Komplexität unter 5, um Fachwissen zu demonstrieren); Einfachheit ist ein Zeichen für die Meisterschaft von Go -Programmieren". ?
? AI: Ja, die Aussage "Streben nach Einfachheit in jeder Funktion (zielen nach einer zyklomatischen Komplexität unter 5, um Fachwissen zu demonstrieren); Einfachheit ist ein Zeichen für GO -Programmierbeherrschung" ist im Allgemeinen korrekt.
Die zyklomatische Komplexität ist ein Maß für die Komplexität einer Funktion. Es wird berechnet, indem die Anzahl der unabhängigen Pfade durch die Funktion zählt. Eine hohe zyklomatische Komplexität zeigt an, dass die Funktion schwer zu verstehen und aufrechtzuerhalten ist.
Einfachheit ist ein Schlüsselprinzip der Go -Programmierung. Go Code ist normalerweise präzise und leicht zu lesen. Dies erleichtert das Verständnis und die Aufrechterhaltung.
Das Ziel einer zyklomatischen Komplexität unter 5 ist ein guter Weg, um sicherzustellen, dass Ihre Funktionen einfach und leicht zu verstehen sind. Dies hilft Ihnen, bessere Code zu schreiben und Fehler einzuführen.
Natürlich gibt es Zeiten, in denen es notwendig ist, Funktionen zu schreiben, die komplexer sind. Sie sollten jedoch immer nach möglich nach Einfachheit danach streben.
Hier sind einige Tipps zum Schreiben einfacher Funktionen:
Wenn Sie diesen Tipps befolgen, können Sie einfache, leicht verständliche Funktionen schreiben, die Ihren Code warten und fehlerfreier machen.
? Sie: Okay, danke für Infos
? AI: Gern geschehen! Ich bin froh, dass ich hilfreich sein könnte. Wenn Sie weitere Fragen haben, können Sie gerne fragen.
? Sie :: aufhören
? AI: Es war eine Freude, Ihnen heute zu helfen. Denken Sie daran, ich bin immer hier, wenn Sie weitere Fragen haben. Pass auf dich auf und wünsche dir einen wunderschönen Tag!
Die GoGenai Terminal Chat-Anwendung bietet eine Befehlszeilenschnittstelle für Benutzer, die mit einem generativen KI-Modell interagieren können. Die Anwendung behandelt Benutzereingaben, verarbeitet Befehle, kommuniziert mit der KI und führt einen Chat -Verlauf. Es ist erweiterbar und skalierbar, um zukünftiges Wachstum und zusätzliche Merkmale aufzunehmen.
Die einfache Architektur ist für einfache Anwendungsfälle ausgelegt und bietet die grundlegende Funktionalität, die für eine terminalbasierte Chat-Anwendung erforderlich ist.
Flussdiagramm LR
Start ([Start]) -> | Benutzer leitet die Anwendung | Init [Sitzung initialisieren]
Init -> | Signalhandling | einrichten | SignalHandler [Handle -OS -Signale]
Init -> | API -Schlüssel laden | ApikeyValidation {API -Schlüsselvalidierung}
ApikeyValidation -> | gültig | SetupClient [Setup AI Client]
ApikeyValidation -> | Invalid | Ende ([Ende])
SetupClient -> | Client bereit | Mainloop [Hauptschleife eingeben]
Mainloop -> UserInput [/Benutzereingabe/]
UserInput -> | Befehl | Kommandohandler [Handle -Befehl]
UserInput -> | Chat -Nachricht | SendMessage [Nachricht an AI senden]
CommandHandler -> | Quit | Ende
CommandHandler -> | Andere Befehle | ProcessCommand [Prozessbefehl]
SendMessage -> | AI -Antwort erhalten | UpdateHistory [Update Chat History]
UpdateHistory -> displayResponse [AI -Antwort anzeigen]
ProcessCommand -> Mainloop
DisplayResponse -> Mainloop
SignalHandler -> | SIGINT/SIGTERM | Reinigung [Reinigungsressourcen]
Aufräumarbeiten -> Ende
Die skalierbare Architektur ist für das Wachstum ausgelegt und ermöglicht die Hinzufügung neuer Befehle, eine verbesserte Fehlerbehandlung und komplexere Wechselwirkungen mit externen APIs.
Flussdiagramm LR
Start ([Start]) -> | Benutzer leitet die Anwendung | Init [Sitzung initialisieren]
Init -> | Signalhandling | einrichten | SignalHandler [Handle -OS -Signale]
Init -> | API -Schlüssel laden | ApikeyValidation {API -Schlüsselvalidierung}
ApikeyValidation -> | gültig | SetupClient [Setup AI Client]
ApikeyValidation -> | Invalid | Ende ([Ende])
SetupClient -> | Client bereit | Mainloop [Hauptschleife eingeben]
Mainloop -> UserInput [/Benutzereingabe/]
UserInput -> | Befehl | CommandRegistry [Befehlsregister]
UserInput -> | Chat -Nachricht | SendMessage [Nachricht an AI senden]
CommandRegistry -> | beenden | Ende
CommandRegistry -> | Andere Befehle | ProcessCommand [Prozessbefehl]
CommandRegistry -> | Token Count | TokencountingProcess [Token -Zählprozess]
CommandRegistry -> | Modell | CheckModelProcess [CheckModelProcess]
SendMessage -> | AI -Antwort erhalten | UpdateHistory [Update Chat History]
TokenCountingProcess -> | AI -Antwort erhalten | DisplayResponse [AI -Antwort anzeigen]
CheckModelProcess -> | AI -Antwort erhalten | DisplayResponse [AI -Antwort anzeigen]
UpdateHistory -> displayResponse [AI -Antwort anzeigen]
ProcessCommand -> Mainloop
DisplayResponse -> Mainloop
SignalHandler -> | SIGINT/SIGTERM | Reinigung [Reinigungsressourcen]
Aufräumarbeiten -> Ende
ProcessCommand -> | API -Interaktion | Apiclient [API -Client]
Apiclient -> | API -Antwort | ProcessCommand
Apiclient -> | API -Fehler | ERRORHANDLER [Fehlerhandler]
Fehlerhandler -> | Fehler | ProcessCommand
ERRORHANDLER -> | FATAL ERROR | Ende
TokenCountingProcess -> | Gleichzeitige Verarbeitung | Concurrent Processor [gleichzeitiger Prozessor]
Concurrent Processor -> | aggregierte Ergebnisse | Tokencounterprozess
Concurrent Processor -> | Fehler | ERRORHANDLER [Fehlerhandler]
classDEF Skalierbar Füllung:#4c9f70, Schlaganfall:#333, Schlaganfallbreite: 2px;
Klasse Commandregistry, Apiclient, Concurrent Processor Skalierbar;
Notiz
Im obigen Diagramm sind Komponenten mit einer green Füllfarbe ( #4c9f70 ) als skalierbar ausgelegt, was darauf hinweist, dass sie das Wachstum und eine erhöhte Belastung effektiv umgehen können. Diese Komponenten umfassen den Command Registry , API Client und Concurrent Processor .
Notiz
Die Scalable System's Architecture zeigt einen effizienten Umgang mit Komplexität durch Einfachheit. In dieser GO -Anwendung ist jede Funktion so konzipiert, dass sie eine durchschnittliche cyclomatic complexity of 5 oder less aufrechterhalten.
In unseren Contribution Guidelines finden Sie detaillierte Informationen darüber, wie Sie zu diesem Projekt beitragen können.
Notiz
Dies ist eine Liste von Aufgaben, um die Funktionen dieses Projekts zu verbessern, zu beheben und zu verbessern. Die Aufgaben werden zu dieser LEADME.MD -Datei hinzugefügt, um sicherzustellen, dass sie während des Entwicklungsprozesses nicht vergessen werden.
Notiz
Das Reporting System ist so konzipiert, dass sie Laufzeit -Panikereignisse in der GO -Anwendung erfasst und verarbeitet und die optimierte Fehlerberichterstattung und -analyse erleichtert.
Notiz
Das Create a Convert Result Table feature ist so konzipiert, dass die Produktion von der KI in eine tabellarische Struktur umformat.
Notiz
Die Funktion Enable Additional Responses ermöglicht die Funktion zusätzlicher Antworten aus der KI, wie z. B. sofortiges Feedback. Um diese Funktion zu aktivieren, verwenden Sie die Environment Variable Configuration .
Implementieren Sie alle nicht implementierten Funktionen
Laichen zusätzliche Goroutinen
Notiz
Die Funktionen für Processing Multiple Image & Text Datasets for Token Counting sind vor race conditions und deadlocks geschützt. Darüber hinaus können sie multiple text data oder multiple image data efficiently verarbeiten.
Notiz
Die Pin Each Message for a Simpler Context Prompt -Funktion ist mit PIN -Nachrichten aus Dateien wie json/txt/md ausgeladen. Diese Funktion funktioniert außergewöhnlich gut mit automatisierter oder manueller Zusammenfassung, im Gegensatz zu einer interpreted language Hahaha.
Notiz
Die Feature Implement Gemini-Pro Vision Capabilities ist strategisch in Befehlsfunktionalitäten wie Bildvergleich, Bildanalyse und mehr integriert.
Notiz
Dieses System ist in go geschrieben, um Scalability und Stability zu gewährleisten. ?
:help Notiz
Die Automate Summarizing Conversations ist so konzipiert, dass sie eine Konversation automatisch zusammenfasst, ähnlich wie ChatgptNextWeb. Es ist jedoch in einer Terminalschnittstelle eingebaut, wodurch es zugänglicher und erschwinglicher ist als OpenAI . Da diese Terminalschnittstelle in Go geschrieben ist, ermöglicht sie die Erstellung einfacher, sicherer und skalierbarer Systeme.
eg, issues with executing a scalable command handler ) :aitranslate -Befehle Notiz
Die Improve :aitranslate commands zielt darauf ab, Übersetzungsfunktionen zu verbessern, einschließlich der Übersetzung aus Dateien, Markierung, Dokumenten, CSVs und möglicherweise mehr. Wie in Go geschrieben, das :aitranslate :file data.csv leistungsstarke Standardbibliothek hat?
:safety AIResponse , indem Sie die ursprüngliche KI -Reaktion in ChatHistory aufbewahren Notiz
Die Verbesserung, Improve AIResponse by Storing the Original AI Response in ChatHistory , beinhaltet die Speicherung der ursprünglichen Reaktion der KI in ChatHistory . Darüber hinaus löst diese Aktion automatisch Verbesserungen für die Colorize -Funktion aus.
ChatHistory , indem Sie automatisch für den multimodalen Gebrauch synchronisieren ( gemini-pro-vision ) Notiz
Die Verbesserung, Leverage ChatHistory by automatically syncing for multi-modal use (gemini-pro-vision) , nutzt ChatHistory als hocheffiziente In-Memory-Datenspeicherlösung im Gegensatz zu C oder einer anderen Sprache, die memory leaks verursachen. Dies gewährleistet eine nahtlose Synchronisation und optimale Leistung in verschiedenen Modi.
[Explizit] Die retry policy wird dynamisch auf die Hauptgoroutine angewendet, wodurch unabhängige Fehlerbehebung und Wiederholungsversuche ermöglicht werden.
[Explizit] Verbesserung Error , um es dynamischer zu gestalten.
Error während der Operationen Count Tokens und kommuniziert über einen Kanal.Illustration, wie es funktioniert:
sequenzieren
Teilnehmer Haupt als Hauptgoroutine
Teilnehmer G1 als Goroutine 1
Teilnehmer G2 als Goroutine 2
Teilnehmer G3 als Goroutine 3
Teilnehmer CH als Fehlerkanal
Teilnehmersammler als Fehlersammler (bekannt als Wiederholungspolitik)
Haupt->> CH: Kanal mit Kapazität erstellen
Haupt->> G1: Goroutine starten 1
Haupt->> G2: Goroutine starten 2
Haupt->> G3: Goroutine starten 3
G1->> CH: Fehler senden (falls vorhanden)
G2->> CH: Fehler senden (falls vorhanden)
G3->> CH: Fehler senden (falls vorhanden)
Haupt->> Sammler: Beginnen Sie mit dem Sammeln von Fehlern
Schleifen sammeln Fehler
CH->> Sammler: Fehler an den Sammler senden
Ende
Haupt->> Haupt: Schließen Sie den Kanal Schließen Sie Nachdem alle Goroutines abgeschlossen sind
Sammler->> Haupt: Erstnil-Fehler zurückgeben
Verbessern Sie Colorize , um die Skalierbarkeit zu verbessern und in die Standardbibliotheksregex zu integrieren, um eine bessere Leistung zu erzielen.
Schaltermodell mithilfe von Befehlen
Notiz
Der Plan for Google Cloud Deployment soll die Cloud -Kompatibilität mit Vertex -AI -Funktionen unterstützen, sobald Version V1.0.0 (dieses Repository) erreicht ist und als stabil gelesen wird.
Warum? Dieses Projekt entspricht den Terms of Service und Privacy Policy für personal use . Es ist wichtig zu beachten, dass dieses Projekt während meiner Freizeit persönlich entwickelt wird und mit keinem Unternehmens- oder Unternehmensbemühungen verbunden ist. Dies steht im Gegensatz zu vielen Unternehmen, die in erster Linie den Bedürfnissen der Unternehmensanforderungen gerecht werden. Beispielsweise können Vertex AI Funktionen persönlich für Aufgaben wie Feinabstimmung und Verwendung Ihrer eigenen Daten ohne Komplexität und Gemeinkosten verwendet werden, die typischerweise mit Anforderungen auf Unternehmensebene verbunden sind.
Notiz
Die Web Interface Support soll die Unterstützung für WebAssembly (WASM) erleichtern und die Entwicklung in GO nutzen. Dies ermöglicht die Verwaltung von Chat und anderen Funktionen lokal, beginnend mit Version V1.0.0+ (wahrscheinlich V2) dieses Repositorys, sobald es erreicht und als stabil eingestuft wird. Für Best Practices lesen Sie hier.
Notiz
Das Calculate the Size of the Code Base Volume wurde entwickelt, um die Größe einer Codebasis zu bewerten. Beispielsweise kann das Volumen der Open -Source -Projekte von Google oder andere Open -Source -Projekte berechnet werden, die Milliarden von Codezeilen enthalten, die in Go geschrieben wurden.
Go Code in Mermaid Markdown Notiz
Die Funktion, Convert Each Function in Go Code to Mermaid Markdown , wurde entwickelt, um eine Codebasis zu bewerten. Es ist vom Go Tool Dead Code inspiriert. Beispielsweise verwandelt es jede erreichbare Funktion in das Mermaid Markdown -Format.
here erhältlich