Copia questo prompt nella nostra Console per sviluppatori per provarlo tu stesso!

Contenuto
SystemIl tuo compito è creare funzioni Python basate sulle richieste in linguaggio naturale fornite. Le richieste descriveranno la funzionalità desiderata della funzione, inclusi i parametri di input e il valore di ritorno previsto. Implementa le funzioni secondo le specifiche fornite, assicurandoti che gestiscano i casi limite, eseguano le necessarie validazioni e seguano le best practice per la programmazione Python. Includi commenti appropriati nel codice per spiegare la logica e aiutare gli altri sviluppatori a comprendere l’implementazione.
UserVoglio una funzione che possa risolvere un puzzle Sudoku. La funzione dovrebbe prendere come input una griglia Sudoku 9x9, dove le celle vuote sono rappresentate dal valore 0. La funzione dovrebbe risolvere il puzzle usando un algoritmo di backtracking e restituire la griglia risolta. Se il puzzle è irrisolvibile, dovrebbe restituire None. La funzione dovrebbe anche validare la griglia di input per assicurarsi che sia un puzzle Sudoku valido.

Esempio di Output

Python
def solve_sudoku(grid):
   def is_valid(row, col, num):
       # Controlla se il numero è valido nella riga e colonna corrente
       for i in range(9):
           if grid[row][i] == num or grid[i][col] == num:
               return False

       # Controlla se il numero è valido nella sottomatrice 3x3 corrente
       start_row, start_col = (row // 3) * 3, (col // 3) * 3
       for i in range(3):
           for j in range(3):
               if grid[start_row + i][start_col + j] == num:
                   return False

       return True

   def backtrack(row, col):
       # Se abbiamo riempito tutte le celle, il puzzle è risolto
       if row == 9:
           return True

       # Passa alla riga successiva se abbiamo raggiunto la fine della riga corrente
       if col == 9:
           return backtrack(row + 1, 0)

       # Se la cella corrente è già riempita, passa alla cella successiva
       if grid[row][col] != 0:
           return backtrack(row, col + 1)

       # Prova a riempire la cella corrente con numeri da 1 a 9
       for num in range(1, 10):
           if is_valid(row, col, num):
               grid[row][col] = num
               if backtrack(row, col + 1):
                   return True
               grid[row][col] = 0

       # Se non viene trovato alcun numero valido, torna indietro
       return False

   # Valida la griglia di input
   if not all(len(row) == 9 and all(0 <= cell <= 9 for cell in row) for row in grid):
       return None

   # Avvia l'algoritmo di backtracking
   if backtrack(0, 0):
       return grid
   else:
       return None


Richiesta API

Nota: Claude 3 Opus sarà presto disponibile nell’API Bedrock.

import anthropic

client = anthropic.Anthropic( # defaults to os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0,
system="Il tuo compito è creare funzioni Python basate sulle richieste in linguaggio naturale fornite. Le richieste descriveranno la funzionalità desiderata della funzione, inclusi i parametri di input e il valore di ritorno previsto. Implementa le funzioni secondo le specifiche fornite, assicurandoti che gestiscano i casi limite, eseguano le necessarie validazioni e seguano le best practice per la programmazione Python. Includi commenti appropriati nel codice per spiegare la logica e aiutare gli altri sviluppatori a comprendere l'implementazione.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Voglio una funzione che possa risolvere un puzzle Sudoku. La funzione dovrebbe prendere come input una griglia Sudoku 9x9, dove le celle vuote sono rappresentate dal valore 0. La funzione dovrebbe risolvere il puzzle usando un algoritmo di backtracking e restituire la griglia risolta. Se il puzzle è irrisolvibile, dovrebbe restituire None. La funzione dovrebbe anche validare la griglia di input per assicurarsi che sia un puzzle Sudoku valido."
}
]
}
]
)
print(message.content)