> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Prompt engineering

> Best practice per creare prompt efficaci e ottenere codice di alta qualità da Devin Desktop, inclusi obiettivi chiari, contesto e vincoli.

Se stai leggendo questo, probabilmente conosci già alcuni casi d'uso e limiti degli LLM. Migliori sono il prompt e il contesto che fornisci al modello, migliore sarà il risultato.

Allo stesso modo, anche con Devin Desktop esistono best practice per creare prompt più efficaci, ottenere il massimo dallo strumento e ricevere codice della migliore qualità possibile, così da accelerare i tuoi flussi di lavoro.

<Tip>Per attività più complesse che potrebbero richiedere di [@-menzionare](/it/desktop/chat/overview#mentions) blocchi di codice specifici, usa [Chat](/it/desktop/chat/overview) invece di [Command](/it/desktop/command/plugins-overview). </Tip>

<div id="components-of-a-high-quality-prompt">
  ## Componenti di un prompt di alta qualità
</div>

* ***Obiettivo o risultato chiaro***
  * Cosa stai chiedendo al modello di produrre?
  * Stai chiedendo al modello un piano? Nuovo codice? Un refactor?
* ***Tutto il contesto pertinente per svolgere le attività***
  * Hai usato correttamente le @-mention per assicurarti che sia incluso il contesto corretto?
  * C'è qualche contesto specifico del cliente che potrebbe non essere chiaro a Devin Desktop?
* ***Vincoli necessari***
  * Ci sono framework, librerie o linguaggi specifici che devono essere utilizzati?
  * Ci sono vincoli di complessità spaziale o temporale?
  * Ci sono considerazioni di sicurezza?

<div id="examples">
  ## Esempi
</div>

***Esempio n. 1:***

* **Non corretto**: Scrivi test unitari per tutti i casi di test di un oggetto Order Book.

* **Corretto**: Usando `@class:unit-testing-module`, scrivi test unitari per `@func:src-order-book-add`, verificando le eccezioni generate quando il valore è al di sopra o al di sotto dello stop loss

***Esempio n. 2***:

* **Non corretto**: Refactor rawDataTransform.

* **Corretto**: Refactor `@func:rawDataTransform` trasformando il ciclo while in un ciclo for e utilizzando la stessa struttura dati in output di `@func:otherDataTransformer`

***Esempio n. 3***:

* **Non corretto**: Crea un nuovo Button per il Contact Form.

* **Corretto**: Crea un nuovo componente Button per `@class:ContactForm` usando la guida di stile in `@repo:frontend-components` con l’etichetta “Continue”
