Zugang aus Übersee: www.kdjingpai.com
Ctrl + D Lesezeichen für diese Seite
Derzeitige Position:Abb. Anfang " Praktische AI-Tutorials

Exploding the Gemini-CLI: Lassen Sie DeepSeek Ihre Kommandozeilen-KI steuern

KI-Intelligenzen (Agenten) verlagern sich von der Cloud auf die lokalen Endpunkte der Entwickler. Befehlszeilenintelligenzen (CLI) können tiefer in Entwicklungsworkflows integriert werden als Intelligenzen, die auf grafischen Benutzeroberflächen (GUI) basieren, komplexe Aufgaben durch Skripte automatisieren und lokale Dateien und Codebibliotheken direkt bearbeiten.

ähneln Claude Code im Gesang antworten Gemini-CLI Solche Tools sind wegen ihrer leistungsstarken Programmierhilfen sehr begehrt, aber in einigen Regionen gibt es Hindernisse für den Zugang zu diesen Diensten für Entwickler. Um dieses Problem zu lösen, haben Entwickler aus der Community auf Googles Open-Source Gemini-CLI Projekt, mit DeepSeek Modellierung und silikonbasierte Strömung SiliconCloud Plattform, entwickelte erfolgreich eine neue API namens Gen-CLI Das Ersatzwerkzeug. Obwohl es im Vergleich zum Original eine leichte Leistungslücke gibt, hat es sich in vielen Szenarien als effektiver Ersatz erwiesen.

Schnelle Installation und Konfiguration

Montage Gen-CLI Das Verfahren ist sehr unkompliziert und erfordert nur wenige einfache Schritte.

  1. Stellen Sie sicher, dass das Betriebssystem installiert ist Node.js 18 oder später.
  2. Setzen Sie die Umgebungsvariable API-Schlüssel. Sie müssen in der SiliconCloud Registrieren Sie sich auf der offiziellen Plattform und erhalten Sie YOUR_API_KEY.
    export SILICONFLOW_API_KEY="YOUR_API_KEY"
    
  3. in Bewegung sein Gen-CLI.

    Dies kann geschehen durch npx Führen Sie das entfernte Repository direkt aus:

    npx https://github.com/gen-cli/gen-cli
    

    Alternativ kann durch npm Globale Installation zur künftigen Verwendung:

    npm install -g @gen-cli/gen-cli
    

Grundlegende Eignungsprüfung: Finden Sie Ihr Prompt

Eine effektive KI-Intelligenz sollte in der Lage sein, ihre eigene Codebasis zu verstehen. In Anlehnung an einen verwandten Artikel besteht ein grundlegender, aber wichtiger Test darin, die Gen-CLI Suchen Sie nach der Eingabeaufforderung, die ihr Verhalten im Quellcode definiert.

> find the prompts in this source code
✦ To find prompts in the source code, I'll search for files that might contain prompts, such as configuration files, CLI command definitions, or documentation. I'll
start by looking for common patterns like prompt, message, or input in the codebase.
Let me begin by searching for relevant files.
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✔  SearchText 'prompt|message|input' within ./                                                                                                                   │
│                                                                                                                                                                   │
│   Found 2280 matche(s)                                                                                                                                            │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ The search results reveal several files and contexts where prompts are used in the Gemini CLI source code. Here's a summary of the findings:
Key Files and Contexts:
1. `packages/core/src/core/prompts.ts`:
- Contains the core system prompt logic, including the getCoreSystemPrompt function, which constructs the base prompt for the Gemini CLI.
- Includes instructions for user confirmations, sandbox-specific instructions, and Git repository handling.
2. `packages/cli/src/nonInteractiveCli.ts`:
- Handles non-interactive CLI mode, where prompts are passed directly via the --prompt flag.
3. `packages/cli/src/gemini.tsx`:
- Manages user input and logging of prompts, including telemetry for prompt logging.
4. `packages/core/src/core/client.ts`:
- Uses the getCoreSystemPrompt function to generate prompts for the Gemini API.
5. `packages/core/src/tools/web-fetch.ts`:
- Defines the web_fetch tool, which processes prompts containing URLs and instructions.
6. `packages/core/src/tools/memoryTool.ts`:
- Handles prompts for saving user facts to memory.
7. `packages/core/src/tools/edit.ts`:
- Manages prompts for file editing operations.
8. `docs/cli/commands.md`:
- Documents how prompts are used in the CLI, including the @ symbol for file inclusion in prompts.
Example Prompts:
- Core System Prompt (from prompts.ts):
1   You are an interactive CLI agent...
2   - Respect User Confirmations: Most tool calls will first require confirmation from the user...
- Non-Interactive Mode (from nonInteractiveCli.ts):
1   gemini --prompt "your prompt here"
- Web Fetch Tool (from web-fetch.ts):
1   Processes content from URL(s) embedded in a prompt. Include up to 20 URLs and instructions...
Next Steps:
If you need to inspect or modify specific prompts, I can:
1. Read the content of packages/core/src/core/prompts.ts to see the full system prompt.
2. Check the implementation of the web_fetch tool for URL handling in prompts.
3. Explore how prompts are logged or processed in the CLI.
Let me know which aspect you'd like to dive deeper into!

Interessant.Gen-CLI Die Leistung scheint besser zu sein als die des Originals. Die Originalfassung Gemini-CLI Suche nach Schlüsselwörtern nur in diesem Szenario promptaber (nicht) Gen-CLI existieren DeepSeek modellgesteuerte, autonome Ausweitung der Suche auf die prompt|message|inputund finden so ein umfassenderes Angebot an relevanten Dokumenten und Zusammenhängen.

Prüfung für Fortgeschrittene: Analyse großer Codesammlungen

Der Umgang mit kleinen Codebasen ist relativ einfach, aber die Analyse einer Codebasis wie der LLVM Es sind große und komplexe Projekte wie dieses, die die Fähigkeit einer KI-Intelligenz, Code zu verstehen, auf die Probe stellen.

% gen --prompt "what does this project do" --yolo
The **LLVM Project** is a collection of modular and reusable compiler and toolchain technologies. It is widely used for building compilers, optimizers, debuggers, and other programming tools. Here's a breakdown of its key components and functionalities:
### Core Components:
1. **LLVM Core**:
- Provides the infrastructure for building compilers, including:
- **Intermediate Representation (IR)**: A low-level, typed, and platform-independent representation of code.
- **Optimization Passes**: A suite of optimizations that can be applied to IR.
- **Code Generation**: Backends for generating machine code for various architectures (e.g., x86, ARM, etc.).
2. **Clang**:
- A C/C++/Objective-C compiler that uses LLVM as its backend. It is known for:
- Fast compilation.
- Better error messages and diagnostics.
- Support for modern C++ standards.
3. **LLDB**:
- A debugger for C, C++, and Objective-C, designed to integrate with LLVM and Clang.
4. **libc++** and **libc++abi**:
- Implementations of the C++ Standard Library and ABI, respectively, designed for performance and correctness.
5. **Compiler-RT**:
- Provides runtime libraries for compiler-builtins (e.g., `__builtin` functions), sanitizers (e.g., AddressSanitizer, MemorySanitizer), and profiling tools.
6. **LLD**:
- A high-performance linker designed to be faster than traditional linkers like GNU `ld`.
7. **MLIR**:
- A framework for building domain-specific compilers and optimizing transformations, particularly useful for machine learning and other high-level abstractions.
8. **Flang**:
- A Fortran compiler frontend for LLVM.
9. **Polly**:
- A high-level loop and data-locality optimizer for LLVM.
### Key Features:
- **Modularity**: LLVM is designed as a set of reusable libraries, making it easy to build custom tools or extend existing ones.
- **Performance**: LLVM's optimizations and code generation are highly efficient, making it a popular choice for performance-critical applications.
- **Cross-Platform**: Supports a wide range of operating systems (Linux, macOS, Windows, etc.) and architectures (x86, ARM, RISC-V, etc.).
- **Open Source**: The project is open-source and has a large community of contributors.
### Use Cases:
- **Building Compilers**: Many languages (e.g., Rust, Swift) use LLVM as their backend.
- **Static Analysis**: Tools like Clang-Tidy use LLVM for code analysis.
- **JIT Compilation**: LLVM's Just-In-Time (JIT) compilation is used in projects like Julia and LuaJIT.
- **Debugging and Profiling**: Tools like LLDB and sanitizers help developers find bugs and performance issues.
### Directory Structure (From Your Context):
- The project is organized into subdirectories for each major component (e.g., `clang/`, `lld/`, `mlir/`).
- Configuration files (e.g., `.clang-format`, `.gitignore`) and documentation (e.g., `README.md`) are present at the root level.
If you're working with the LLVM Project, you might be interested in building, debugging, or contributing to one of these components. Let me know if you'd like help with anything specific!

Gen-CLI Erfolgreich ausgewertet LLVM Die Struktur des Projekts, in der die Kernkomponenten, Schlüsselfunktionen und typischen Anwendungsfälle genau identifiziert werden, zeigt, dass es in der Lage ist, große Code-Basen zu verarbeiten.

Kern-Workflow: Kontinuierliche Debug-Edit-Validate-Schleife

Bei starker Abhängigkeit VSCode Für Code Agent-Benutzer ist der Zyklus von Intelligenz, der automatisch Änderungen ausführt, Tests durchführt und auf der Grundlage der Ergebnisse erneut Änderungen vornimmt, der Schlüssel zur Effizienzsteigerung.Gen-CLI Ist es auch möglich, diesen "Autopilot"-Modus zu aktivieren?

Die Testaufgabe besteht darin, die Gen-CLI Fügen Sie einen Einheitstest für eine Datei im Projekt hinzu. Zunächst liest der Smart Body die betreffende Datei ohne Probleme.

> create test for @packages/core/src/core/siliconFlowContentGenerator.ts following @packages/core/src/core/contentGenerator.test.ts
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✔  ReadManyFiles Will attempt to read and concatenate files using patterns: `packages/core/src/core/siliconFlowContentGenerator.ts`, `packages/core/src/core/conten…  │
│                                                                                                                                                                       │
│   ### ReadManyFiles Result (Target Dir: `/oss/gen-cli`)                                                                                                               │
│                                                                                                                                                                       │
│   Successfully read and concatenated content from **2 file(s)**.                                                                                                      │
│                                                                                                                                                                       │
│   **Processed Files:**                                                                                                                                                │
│   - `packages/core/src/core/contentGenerator.test.ts`                                                                                                                 │
│   - `packages/core/src/core/siliconFlowContentGenerator.ts`                                                                                                           │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Im Falle von ungeöffneten --yolo(automatische Genehmigung).Gen-CLI Der Benutzer wird aufgefordert, die Dateiänderungen zu genehmigen, genau wie der Agent im Editor.

Next Steps:
1. Save this file as packages/core/src/core/siliconFlowContentGenerator.test.ts.
2. Run the test to ensure it passes (assuming the implementation of siliconFlowContentGenerator.ts follows the expected behavior).
Let me know if you'd like me to save this file or make any adjustments!
> Save this file and run test with npm run test [file name]
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ?  WriteFile Writing to /siliconFlowContentGenerator.test.ts ←                                                                                                     │
│                                                                                                                                                                    │
│ ... first 44 lines hidden ...                                                                                                                                      │
│ 45       },                                                                                                                                                          │
│ 46     },                                                                                                                                                            │
│ 47   });                                                                                                                                                            │
│ 48     expect(generator).toBe((mockGenerator as GoogleGenAI).models);                                                                                               │
│ 49 });                                                                                                                                                              │
│ 50 });                                                                                                                                                              │
│                                                                                                                                                                    │
│ Apply this change?                                                                                                                                                 │
│                                                                                                                                                                    │
│ ● Yes, allow once                                                                                                                                                  │
│ ○ Yes, allow always                                                                                                                                                │
│ ○ Modify with external editor                                                                                                                                      │
│ ○ No (esc)                                                                                                                                                         │
│

Allerdings wurde bei den Tests auch festgestellt, dassGen-CLI Der Werkzeugaufruf ist nicht immer zuverlässig. Manchmal erzeugt er die falschen Werkzeugaufrufanweisungen, wodurch die Aufgabe abgebrochen wird.

╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✔  Edit /siliconFlowContentGenerator.test.ts: import { jest } from '@jest/gl... => import { vi } from 'vitest';                                                 │
│                                                                                                                                                             │
│    7      import { SiliconFlowContentGenerator } from './siliconFlowContentGenerator';                                                                       │
│    8      import { GenerateContentParameters, CountTokensParameters } from '@google/genai';                                                                  │
│    9      import OpenAI from 'openai';                                                                                                                        │
│    10   - import { jest } from '@jest/globals';                                                                                                                 │
│    10   + import { vi } from 'vitest';                                                                                                                        │
│    11                                                                                                                                                         │
│    12     describe('SiliconFlowContentGenerator', () => {                                                                                                      │
│    13       let generator: SiliconFlowContentGenerator;                                                                                                        │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ x  undefined_tool_name ["function<|tool sep|>replace",{"file_path":"/oss/gen-cli/packages/core/src/core/siliconFlowContentGenerator.test.ts","old_strin… │
│                                                                                                                                                                       │
│   Tool "undefined_tool_name" not found in registry.

Nach einigen manuellen Eingriffen und vielen VersuchenGen-CLI Schließlich können Sie die Debug-Edit-Validate-Schleife betreten. Im Gegensatz dazu ist dieCursor vielleicht Aline Tools wie diese lösen automatisierte Schleifen flüssiger aus. Dies könnte darauf zurückzuführen sein, dass sie besser mit unstrukturierter natürlicher Sprachausgabe umgehen können, wodurch die Auslösung von Toolaufrufen in häufigen Interaktionsszenarien zuverlässiger wird, was genau das ist, was die Gen-CLI Richtungen für zukünftige Verbesserungen.

Praktische Anwendung: Erstellen von Todo-Apps mit einem Klick

passieren (eine Rechnung oder Inspektion etc.) --yolo Parameter genehmigt automatisch alle Interaktionen und kann prüfen Gen-CLI s Fähigkeiten zur Erstellung von End-to-End-Projekten.

gen --prompt "create a todo app, save the src files in the current dir" --yolo

Nachdem der Befehl ausgeführt wurde, können Sie sehen, dass die entsprechenden Dateien erfolgreich erstellt wurden:

% ls
app.js          index.html      styles.css

In Ihrem Browser öffnen index.htmlEine voll funktionsfähige Todo-Anwendung mit Fehlerbehandlung ist nun einsatzbereit.

Todo App UI

Todo App Error Handling

Auch Nicht-Entwickler können profitieren: Automatisierung der täglichen Aufgaben

Der Wert des CLI-Agenten ist nicht auf Entwickler beschränkt. Er ist eine große Erleichterung für jeden Benutzer, der mit sich wiederholenden Dateioperationen zu tun hat. In einem Szenario für finanzielle Rückerstattungen wird zum Beispiel eine Kombination von Rechnungs-PDFs, die einem bestimmten Betrag nahe kommen, aus einem Stapel zusammengeschustert.

Die Verwendung eines GUI-Agenten kann folgende Schritte erfordern: Öffnen einer Webseite, Eingabe von Befehlen, Warten auf die Verarbeitung des Modells und doppelte Überprüfung der Ergebnisse, was zeitaufwändig und schwer wiederverwendbar ist. Der Vorteil von CLI Agent ist seine Wiederverwendbarkeit und Programmierbarkeit. Eine Reihe von Befehlen kann als Skript gespeichert werden, das mit einem einzigen Klick jedes Mal ausgeführt werden kann, wenn es benötigt wird, und das Skript kann sogar kontinuierlich optimiert werden, was für die manuelle Bedienung der GUI unerreichbar ist.

unter Gen-CLI Der eigentliche Prozess der Bearbeitung dieser Aufgabe:

cd "6月发票"
gen --prompt "这个文件夹包含了这个月的发票,读取所有内容,找到正好加起来最接近888元的组合" --yolo

Gen-CLI Die folgenden Schritte wurden eigenständig geplant und durchgeführt:

  1. Ordnerinhalt lesenAlle Rechnungsdokumente auflisten.
  2. Lernen, Werkzeuge zu benutzen: Lernen Sie selbst und rufen Sie an pdftotext Befehl, um Text aus PDF-Dateien zu extrahieren.
  3. DatenverarbeitungErkennen von Beträgen in verschiedenen Währungen (USD und RMB) und Umrechnung von Wechselkursen.
  4. Kombinatorische AnalyseBerechnen Sie alle möglichen Rechnungskombinationen, um die Option zu finden, deren Gesamtbetrag dem Zielwert von 888 $ am nächsten ist.
> 这个文件夹包含了这个月的发票,读取所有内容,找到正好加起来最接近888元的组合, 如果是pdf文件,请运行 poppler 的pdftotext命令来读取 pdf
... (Agent autonomously reads folder, executes pdftotext on multiple files, extracts text) ...
✦ Here are the extracted amounts from the invoices:
1. 2025-04-23_041203 火车票.pdf: ¥54.50 (Train ticket)
2. YYY-Invoice_2112627897.pdf: $8.97 (YYY invoice)
3. bj-tj25119110010001979920.pdf: ¥54.50 (Train ticket)
4. dzfp_25322000000121860670_20250320103244.pdf: ¥2961.00 (Hotel invoice)
... (and 8 more invoices) ...
Next Steps:
1. Convert all USD amounts to CNY (assuming an exchange rate of 1 USD = 7.2 CNY for simplicity).
2. Sum the amounts to find the combination closest to ¥888.
Would you like me to proceed with the calculations?
> yes
✦ Here are the converted amounts (assuming 1 USD = 7.2 CNY) and the total in CNY:
1. 2025-04-23_041203 火车票.pdf: ¥54.50
2. YYY-Invoice_2112627897.pdf: $8.97 → ¥64.58
... (all amounts converted to CNY) ...
Goal: Find the combination of invoices that sums closest to ¥888.
Possible Combinations:
... (Agent calculates multiple combinations) ...
Best Match:
Combination 3 sums to ¥888.80, which is only ¥0.80 above the target of ¥888.
Invoices in Combination 3:
1. 2025-04-23_041203 火车票.pdf (¥54.50)
2. YYY-Invoice_2112627897.pdf (¥64.58)
3. bj-tj25119110010001979920.pdf (¥54.50)
4. XXX云服务-Invoice-PPITBZ-00013.pdf (¥72.00)
5. Invoice_2149516169.pdf (¥97.49)
6. Invoice_2184658113.pdf (¥100.73)
7. XX酒店KPLS202505290028783_8432931_1.pdf (¥345.00)

Irgendwann.Gen-CLI Er hat nicht nur die Aufgabe erfolgreich abgeschlossen, sondern auch eine perfekte Kombination ermittelt, die nur um 0,8 Dollar vom Zielbetrag abwich. Dieses Beispiel verdeutlicht die Leistungsfähigkeit des CLI-Agenten bei der Automatisierung komplexer täglicher Aufgaben.

Zusammengenommen, wenn die Claude Code und die Fähigkeit des Vertragsstaates, seinen Verpflichtungen aus dem Übereinkommen nachzukommen, im Umfang von 100 Punkten.Gemini-CLI 80 Punkte beträgt, dann durch DeepSeek nachfrageorientiert Gen-CLI Derzeit kann es eine Punktzahl von 70 erreichen. Sie ist bereits in der Lage, viele komplexe Aufgaben zu bewältigen, auch wenn die Stabilität der Werkzeugaufrufe und die reibungslose Interaktion noch verbesserungswürdig sind. Aber mit der kontinuierlichen Iteration des Modells und der CLI-Toolchain kann man sich auf ihre zukünftige Leistung freuen.

Gen-CLI Das Projekt ist auf GitHub als Open Source verfügbar und plant, in Zukunft weitere Modelle zu unterstützen. Interessierte Nutzer und Entwickler sind herzlich eingeladen, einen Beitrag zu leisten.

Empfohlen

Sie können keine AI-Tools finden? Versuchen Sie es hier!

Geben Sie einfach das Schlüsselwort Barrierefreiheit Bing-SucheDer Bereich KI-Tools auf dieser Website bietet eine schnelle und einfache Möglichkeit, alle KI-Tools auf dieser Website zu finden.

Posteingang

Kontakt

zurück zum Anfang

de_DEDeutsch