Panoramica
Devin Desktop supporta un’API per l’analytics personalizzata. Consente di recuperare dati da completamento automatico, chat e comandi, con una varietà di filtri, raggruppamenti e aggregazioni. Forniamo tutti gli esempi in curl; possono poi essere convertiti in richieste HTTP in altri linguaggi.L’API di Analytics è disponibile per i piani Enterprise
Specifica dell’API di analisi dei dati utente
I dati della tabella Users nella pagina Teams possono essere ottenuti con il seguente comando:Esempio di output
Specifica dell’API di Cascade Analytics
I dati specifici di Cascade visibili nella pagina analytics possono essere recuperati tramite API.Esempio di query
Tipi di IDE
Suddividiamo i dati di cascade in categorie in base al tipo di IDE. Se il campo ide_types non è incluso nella query, vengono restituiti i dati per tutti i tipi di IDE. Se desideri recuperare i dati di un solo IDE, puoi usare una delle seguenti opzioni:- “editor” per Devin Desktop Editor
- “jetbrains” per il plugin JetBrains
- “cli” per Devin CLI
Quando filtri per Devin CLI (
"cli"), il campo mode di cascade_runs non viene popolato. cascade_lines e cascade_tool_usage coprono l’attività di Devin CLI e Devin Local, ma includono solo i dati registrati dopo che questi agenti hanno iniziato a segnalarli.Origini dei dati di Cascade
Esistono tre possibili valori per CASCADE_DATA_SOURCEFonte: cascade_lines
Usa cascade_lines per recuperare i dati relativi alle linee cascade suggerite e accettate ogni giorno. Output di esempio:Fonte: cascade_runs
Usa cascade_runs per recuperare i dati sull’utilizzo del modello, sul consumo di crediti e sulla modalità. Output di esempio:Fonte: cascade_tool_usage
Usa cascade_tool_usage per recuperare dati sull’utilizzo degli strumenti. Tieni presente che restituisce un conteggio aggregato degli utilizzi degli strumenti nel periodo specificato. Esempio di output:- CODE_ACTION: ‘Modifica codice’
- VIEW_FILE: ‘Visualizza file’
- RUN_COMMAND: ‘Esegui comando’
- FIND: ‘Strumento di ricerca’
- GREP_SEARCH: ‘Ricerca Grep’
- VIEW_FILE_OUTLINE: ‘Struttura del file’
- MQUERY: ‘Riptide’
- LIST_DIRECTORY: ‘Elenca directory’
- MCP_TOOL: ‘Tool MCP’
- PROPOSE_CODE: ‘Proponi codice’
- SEARCH_WEB: ‘Cerca sul Web’
- MEMORY: ‘Memoria’
- PROXY_WEB_SERVER: ‘Anteprima nel Browser’
- DEPLOY_WEB_APP: ‘Distribuisci app web’
Specifica della Custom Analytics API
Alcune origini dati consentono query personalizzabili tramite la Custom Analytics API. Gli schemi completi per selezioni, filtri, aggregazioni e ordinamenti sono riportati nella sezione seguente, in formato JSON. Alla fine del documento troverai esempi di query per ciascuna delle tre origini dati, insieme a suggerimenti per il debug delle query.Schemi
Selezioni
Le selezioni sono obbligatorie. Ogni selezione corrisponde a un valore su cui eseguire la query.Filtri
I filtri servono a restringere i dati in modo da includere solo gli elementi che soddisfano determinati criteri. Sono facoltativi.Aggregazioni
Le aggregazioni vengono utilizzate per suddividere i dati in gruppi in base a un criterio specifico. Sono facoltative.Campi disponibili
Dati utente
Tutti i dati della sorgente USER_DATA sono aggregati per utente e per ora. Nota: PCW (percentuale di codice scritto) ora ha una tabella dedicata e non dipende dalla tabella user_data.Dati della chat
Si noti che tutti i dati forniti nell’API dei dati della chat si riferiscono alle risposte del modello di chat, non alle domande degli utenti.Dati del comando
Nota che la sorgente dati del comando contiene tutti i comandi, inclusi quelli rifiutati. Il campo “accepted” può essere usato per filtrare solo i comandi accettati.Dati PCW
Selezioni valide
Dati di Cascade
L’origine dati Cascade contiene una voce per ogni messaggio inviato a Cascade.Per accedere a tutti i campi elencati di seguito, assicurati di utilizzare la versione 1.11.2 o successiva.
Filtri validi
Per filtrare per data, usa start_timestamp e end_timestamp, che devono essere nel formato RFC 3339 (ad es. 2023-01-01T00:00:00Z, come nell’esempio seguente).
Esempi
Dati utente
Dati della chat
Dati del comando
Dati PCW
Debug delle query
A partire dalla versione 1.10.0, le query non valide restituiscono un messaggio di errore. Questa sezione raccoglie alcuni messaggi di errore comuni, il loro significato e come eseguire il debug delle query corrispondenti.| Messaggio di errore | Spiegazione |
|---|---|
| at least one field or aggregation is required | Non è stata rilevata alcuna selezione o aggregazione: assicurati che la richiesta di query ne includa almeno una. |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | Una delle selezioni usa una funzione di aggregazione non valida. In questo caso, è stato usato SUM sul campo “ide”, ma questo campo supporta solo COUNT e UNSPECIFIED. |
| invalid query table: QUERY_DATA_SOURCE_UNSPECIFIED | Probabilmente c’è un errore di battitura nel campo data_source; verificane l’ortografia. |
| all selection fields should have an aggregation function, or none of them should | Se sono presenti più campi di selezione, tutti devono contenere un aggregation_function oppure nessuno deve contenerlo. Per esempio, questa selezione non è valida perché num_acceptances viene sommato, mentre num_lines_accepted no: |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | Non tutti i campi supportano tutte le funzioni di aggregazione; consulta la sezione dei campi disponibili per vedere le corrispondenze. In questo caso, la query usa la funzione di aggregazione QUERY_AGGREGATION_SUM con il campo “ide”, il che non è valido. |
| tried to aggregate on a distinct field: distinct_developer_days. Consider aggregating on the non-distinct fields instead: [api_key date] | I campi con il pattern “distinct_*” non possono comparire nella sezione aggregations; il messaggio di errore suggerisce invece uno o più campi alternativi su cui aggregare. Quindi, invece di: |
| duplicate field alias for selection/aggregation: num_acceptances | Tutte le selezioni e le aggregazioni devono avere un nome diverso. Tieni presente che, se il nome non è specificato, per default viene impostato su <AGGREGATION_FUNCTION>_<FIELD_NAME>. |
| invalid group name: GroupName | Il group con il nome specificato non è stato trovato; verificane l’ortografia. |

