Überblick
Devin Desktop unterstützt eine API für benutzerdefinierte Analysen. Damit lassen sich Daten aus Autovervollständigung, Chat und Befehlen mit einer Vielzahl von Filtern, Gruppierungen und Aggregationen abfragen. Wir stellen alle Beispiele in curl bereit; sie können anschließend in HTTP-Anfragen in anderen Sprachen übertragen werden.Die Analytics API ist in Enterprise-Plänen verfügbar
Spezifikation der Analytics API für Nutzerdaten
Daten aus der Tabelle „Nutzer“ auf der Teams-Seite können mit dem folgenden Befehl abgerufen werden:Beispielausgabe
Spezifikation der Cascade Analytics API
Die auf der Analytics-Seite angezeigten spezifischen Cascade-Daten können per API abgefragt werden.emails gesetzt ist.
START_TIMESTAMP/END_TIMESTAMP: Zeitstempel im RFC-3339-Format, z. B. 2023-01-01T00:00:00Z
EMAILS: Eine Liste von E-Mail-Adressen, nach denen gefiltert werden soll. Dieses Feld ist optional. Kann nicht gesetzt werden, wenn group_name gesetzt ist.
IDE_TYPES: Eine Liste von IDE-Typen, nach denen gefiltert werden soll. Dieses Feld ist optional. Die möglichen Werte sind unten beschrieben.
QUERY_REQUESTS: Eine Liste von Query-Anfragen, die ausgeführt werden sollen. Dieses Feld ist erforderlich. Die möglichen Werte von CASCADE_DATA_SOURCE sind unten beschrieben.
Beispielabfrage
IDE-Typen
Wir unterteilen Cascade-Daten nach IDE-Typen in Kategorien. Wenn Sie das Feldide_types in der Abfrage weglassen, werden Daten für alle IDE-Typen zurückgegeben. Wenn Sie Daten nur für eine bestimmte IDE abfragen möchten, können Sie eine der folgenden Optionen verwenden:
- “editor” für den Devin Desktop Editor
- “jetbrains” für das JetBrains-Plugin
- “cli” für Devin CLI
Beim Filtern nach Devin CLI (
"cli") wird das Feld mode von cascade_runs nicht ausgefüllt. cascade_lines und cascade_tool_usage erfassen Aktivitäten von Devin CLI und Devin Local, enthalten jedoch nur Daten, die aufgezeichnet wurden, nachdem diese Agents begonnen hatten, diese zu melden.Cascade-Datenquellen
Für CASCADE_DATA_SOURCE gibt es drei mögliche WerteQuelle: cascade_lines
Verwenden Sie cascade_lines, um Daten dazu abzufragen, wie viele Cascade-Zeilen pro Tag vorgeschlagen und akzeptiert wurden. Beispielausgabe:Quelle: cascade_runs
Verwenden Sie cascade_runs, um Daten zur Modellnutzung, zum Verbrauch von Credits und zum Modus abzufragen. Beispielausgabe:Quelle: cascade_tool_usage
Verwenden Sie cascade_tool_usage, um Daten zur Tool-Nutzung abzufragen. Hinweis: Dies gibt die aggregierte Anzahl von Tools im angegebenen Zeitraum zurück. Beispielausgabe:- CODE_ACTION: ‘Code bearbeiten’
- VIEW_FILE: ‘Datei anzeigen’
- RUN_COMMAND: ‘Befehl ausführen’
- FIND: ‘Such-Tool’
- GREP_SEARCH: ‘Grep-Suche’
- VIEW_FILE_OUTLINE: ‘Dateiübersicht anzeigen’
- MQUERY: ‘Riptide’
- LIST_DIRECTORY: ‘Verzeichnis auflisten’
- MCP_TOOL: ‘MCP-Tool’
- PROPOSE_CODE: ‘Code vorschlagen’
- SEARCH_WEB: ‘Web durchsuchen’
- MEMORY: ‘Memory’
- PROXY_WEB_SERVER: ‘Browser-Vorschau’
- DEPLOY_WEB_APP: ‘Web-App bereitstellen’
Spezifikation der Custom Analytics API
Bestimmte Datenquellen unterstützen anpassbare Abfragen über die Custom Analytics API. Die vollständigen Schemas für Selektionen, Filter, Aggregationen und Sortierungen finden Sie im folgenden Abschnitt im JSON-Format. Beispielabfragen für jede der drei Datenquellen sowie Tipps zum Debuggen von Abfragen finden Sie am Ende des Dokuments.Schemata
Auswahlmöglichkeiten
Auswahlmöglichkeiten sind erforderlich. Jede Auswahlmöglichkeit entspricht einem Wert, der abgefragt werden soll.Filter
Filter werden verwendet, um Daten so einzugrenzen, dass sie nur Elemente enthalten, die bestimmte Kriterien erfüllen. Sie sind optional.Aggregationen
Mit Aggregationen lassen sich die Daten anhand eines angegebenen Kriteriums in Gruppen aufteilen. Sie sind optional.Verfügbare Felder
Nutzerdaten
Alle Daten aus der Quelle USER_DATA werden pro Nutzer und pro Stunde aggregiert. Hinweis: PCW (percent code written) hat jetzt eine eigene Tabelle und ist nicht mehr von der Tabelle user_data abhängig.Chat-Daten
Hinweis: Alle in der Chat-Daten-API bereitgestellten Daten beziehen sich auf die Antworten des Chat-Modells, nicht auf die Fragen der Nutzer.Befehlsdaten
Beachten Sie, dass die Datenquelle „Befehlsdaten“ alle Befehle enthält, auch die, die abgelehnt wurden. Mit dem Feld „accepted“ können Sie auf nur akzeptierte Befehle filtern.PCW-Daten
Gültige Auswahlmöglichkeiten
Cascade Data
Die Datenquelle Cascade Data enthält für jede an Cascade gesendete Nachricht einen Eintrag.Um auf alle unten aufgeführten Felder zuzugreifen, stellen Sie bitte sicher, dass Sie Version 1.11.2 oder höher verwenden.
Gültige Filter
Um nach Datum zu filtern, verwenden Sie start_timestamp und end_timestamp. Diese sollten im RFC 3339-Format vorliegen (z. B. 2023-01-01T00:00:00Z; siehe Beispiel unten).
Beispiele
Nutzerdaten
Chat-Daten
Befehlsdaten
PCW-Daten
go gefilterten Bytes ab.
Beispielantwort:
Fehlerbehebung bei Abfragen
Ab Version 1.10.0 geben ungültige Abfragen eine Fehlermeldung zurück. Dieser Abschnitt enthält einige häufige Fehlermeldungen, ihre Bedeutung und Hinweise zur Fehlerbehebung bei den entsprechenden Abfragen.| Fehlermeldung | Erklärung |
|---|---|
| at least one field or aggregation is required | Es wurden keine Auswahlen oder Aggregationen erkannt. Stelle sicher, dass die Query-Anfrage mindestens eine davon enthält. |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | Eine der Auswahlen verwendet eine ungültige Aggregationsfunktion. In diesem Fall wurde versucht, SUM für das Feld „ide“ zu verwenden, aber dieses unterstützt nur COUNT und UNSPECIFIED. |
| invalid query table: QUERY_DATA_SOURCE_UNSPECIFIED | Wahrscheinlich gibt es einen Tippfehler im Feld data_source. Überprüfe die Schreibweise noch einmal. |
| all selection fields should have an aggregation function, or none of them should | Wenn es mehrere Auswahlfelder gibt, sollten entweder alle eine aggregation_function enthalten oder keines davon. Zum Beispiel ist diese Auswahl ungültig, weil num_acceptances summiert wird, num_lines_accepted aber nicht: |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | Nicht jedes Feld unterstützt jede Aggregationsfunktion. Welche Kombinationen möglich sind, findest du im Abschnitt zu den verfügbaren Feldern. In diesem Fall verwendet die Abfrage die Aggregationsfunktion QUERY_AGGREGATION_SUM mit dem Feld „ide“, was ungültig ist. |
| tried to aggregate on a distinct field: distinct_developer_days. Consider aggregating on the non-distinct fields instead: [api_key date] | Felder mit dem Muster „distinct_*“ können nicht im Abschnitt aggregations verwendet werden. Die Fehlermeldung schlägt stattdessen alternative Felder zum Aggregieren vor. Also statt: |
| duplicate field Alias for selection/aggregation: num_acceptances | Alle Auswahlen und Aggregationen müssen unterschiedliche Namen haben. Beachte, dass der Name standardmäßig auf <AGGREGATION_FUNCTION>_<FIELD_NAME> gesetzt wird, wenn er nicht angegeben ist. |
| invalid group name: GroupName | Die Gruppe mit dem angegebenen Namen wurde nicht gefunden. Überprüfe die Schreibweise noch einmal. |

