Skip to content

Latest commit

 

History

History
372 lines (245 loc) · 21.3 KB

README_it-IT.md

File metadata and controls

372 lines (245 loc) · 21.3 KB

Chat Bedrock Claude (Nova)

English | 日本語 | 한국어 | 中文 | Français | Deutsch | Español | Italian | Norsk | ไทย | Bahasa Indonesia | Bahasa Melayu | Tiếng Việt | Polski

Warning

Rilasciata la versione V2. Per aggiornare, leggere attentamente la guida alla migrazione. Senza alcuna attenzione, I BOT DELLA V1 DIVENTERANNO INUTILIZZABILI.

Un chatbot multilingua che utilizza modelli LLM forniti da Amazon Bedrock per l'intelligenza artificiale generativa.

Guarda Panoramica e Installazione su YouTube

Panoramica

Conversazione di Base

Personalizzazione del Bot

Aggiungi le tue istruzioni e fornisci conoscenze esterne tramite URL o file (noto come RAG. Il bot può essere condiviso tra gli utenti dell'applicazione. Il bot personalizzato può essere anche pubblicato come API autonoma (Vedi dettagli).

Important

Per ragioni di governance, solo gli utenti autorizzati possono creare bot personalizzati. Per consentire la creazione di bot personalizzati, l'utente deve essere un membro del gruppo chiamato CreatingBotAllowed, che può essere configurato tramite la console di gestione > Pool di utenti Amazon Cognito o aws cli. Si noti che l'ID del pool di utenti può essere recuperato accedendo a CloudFormation > BedrockChatStack > Output > AuthUserPoolIdxxxx.

Dashboard dell'Amministratore

Dashboard dell'Amministratore

Analizza l'utilizzo per ogni utente / bot nella dashboard dell'amministratore. dettagli

Agente basato su LLM

Agente basato su LLM

Utilizzando la funzionalità di Agente, il tuo chatbot può gestire automaticamente compiti più complessi. Ad esempio, per rispondere a una domanda di un utente, l'Agente può recuperare informazioni necessarie da strumenti esterni o suddividere il compito in più passaggi per l'elaborazione.

🚀 Distribuzione Super-Facile

  • Nella regione us-east-1, aprire Accesso al modello Bedrock > Gestisci accesso al modello > Selezionare tutte le voci di Anthropic / Claude 3, tutte le voci di Amazon / Nova, Amazon / Titan Text Embeddings V2 e Cohere / Embed Multilingual, quindi fare clic su Salva modifiche.
Screenshot

  • Aprire CloudShell nella regione in cui si desidera distribuire
  • Eseguire la distribuzione tramite i seguenti comandi. Se si desidera specificare la versione da distribuire o applicare criteri di sicurezza, specificare i parametri appropriati da Parametri Opzionali.
git clone https://github.com/aws-samples/bedrock-claude-chat.git
cd bedrock-claude-chat
chmod +x bin.sh
./bin.sh
  • Verrà chiesto se si tratta di un nuovo utente o se si sta utilizzando la versione 2. Se non si è un utente che continua dalla versione 0, inserire y.

Parametri Opzionali

È possibile specificare i seguenti parametri durante la distribuzione per migliorare la sicurezza e la personalizzazione:

  • --disable-self-register: Disabilita la registrazione autonoma (predefinito: abilitata). Se questo flag è impostato, sarà necessario creare tutti gli utenti su Cognito e non sarà consentita la registrazione autonoma degli account.
  • --enable-lambda-snapstart: Abilita Lambda SnapStart (predefinito: disabilitato). Se questo flag è impostato, migliora i tempi di avvio a freddo per le funzioni Lambda, fornendo tempi di risposta più veloci per una migliore esperienza utente.
  • --ipv4-ranges: Elenco separato da virgole degli intervalli IPv4 consentiti. (predefinito: consente tutti gli indirizzi ipv4)
  • --ipv6-ranges: Elenco separato da virgole degli intervalli IPv6 consentiti. (predefinito: consente tutti gli indirizzi ipv6)
  • --disable-ipv6: Disabilita le connessioni su IPv6. (predefinito: abilitato)
  • --allowed-signup-email-domains: Elenco separato da virgole dei domini di posta elettronica consentiti per la registrazione. (predefinito: nessuna restrizione di dominio)
  • --bedrock-region: Definisce la regione in cui Bedrock è disponibile. (predefinito: us-east-1)
  • --repo-url: L'URL del repository personalizzato di Bedrock Claude Chat da distribuire, se biforcato o con controllo del codice sorgente personalizzato. (predefinito: https://github.com/aws-samples/bedrock-claude-chat.git)
  • --version: La versione di Bedrock Claude Chat da distribuire. (predefinito: ultima versione in sviluppo)
  • --cdk-json-override: È possibile sovrascrivere qualsiasi valore di contesto CDK durante la distribuzione utilizzando il blocco JSON di override. Ciò consente di modificare la configurazione senza modificare direttamente il file cdk.json.

Esempio di utilizzo:

./bin.sh --cdk-json-override '{
  "context": {
    "selfSignUpEnabled": false,
    "enableLambdaSnapStart": true,
    "allowedIpV4AddressRanges": ["192.168.1.0/24"],
    "allowedSignUpEmailDomains": ["example.com"]
  }
}'

Il JSON di override deve seguire la stessa struttura di cdk.json. È possibile sovrascrivere qualsiasi valore di contesto tra cui:

  • selfSignUpEnabled
  • enableLambdaSnapStart
  • allowedIpV4AddressRanges
  • allowedIpV6AddressRanges
  • allowedSignUpEmailDomains
  • bedrockRegion
  • enableRagReplicas
  • enableBedrockCrossRegionInference
  • E altri valori di contesto definiti in cdk.json

[!Nota] I valori di override verranno uniti con la configurazione cdk.json esistente durante il tempo di distribuzione in AWS code build. I valori specificati nell'override avranno la precedenza sui valori in cdk.json.

Esempio di comando con parametri:

./bin.sh --disable-self-register --ipv4-ranges "192.0.2.0/25,192.0.2.128/25" --ipv6-ranges "2001:db8:1:2::/64,2001:db8:1:3::/64" --allowed-signup-email-domains "example.com,anotherexample.com" --bedrock-region "us-west-2" --version "v1.2.6"
  • Dopo circa 35 minuti, si otterrà l'output seguente, a cui è possibile accedere dal proprio browser
Frontend URL: https://xxxxxxxxx.cloudfront.net

Verrà visualizzata la schermata di registrazione come mostrato sopra, dove è possibile registrare la propria email e accedere.

[!Importante] Senza impostare il parametro opzionale, questo metodo di distribuzione consente a chiunque conosca l'URL di registrarsi. Per l'uso in produzione, si consiglia vivamente di aggiungere restrizioni degli indirizzi IP e disabilitare la registrazione autonoma per mitigare i rischi di sicurezza (è possibile definire allowed-signup-email-domains per limitare gli utenti in modo che solo gli indirizzi email del dominio della propria azienda possano registrarsi). Utilizzare sia ipv4-ranges che ipv6-ranges per le restrizioni degli indirizzi IP e disabilitare la registrazione autonoma utilizzando disable-self-register durante l'esecuzione di ./bin.

[!SUGGERIMENTO] Se l'URL Frontend non appare o Bedrock Claude Chat non funziona correttamente, potrebbe essere un problema con l'ultima versione. In questo caso, aggiungere --version "v1.2.6" ai parametri e riprovare la distribuzione.

Architettura

È un'architettura costruita su servizi gestiti AWS, eliminando la necessità di gestione dell'infrastruttura. Utilizzando Amazon Bedrock, non è necessario comunicare con API esterne ad AWS. Questo consente di distribuire applicazioni scalabili, affidabili e sicure.

Distribuzione tramite CDK

La distribuzione Super-easy utilizza AWS CodeBuild per eseguire la distribuzione tramite CDK internamente. Questa sezione descrive la procedura per la distribuzione diretta con CDK.

  • Assicurati di avere UNIX, Docker e un ambiente runtime Node.js. In caso contrario, puoi utilizzare Cloud9

[!Importante] Se lo spazio di archiviazione nell'ambiente locale è insufficiente durante la distribuzione, il bootstrap di CDK potrebbe generare un errore. Se si sta eseguendo in Cloud9 ecc., si consiglia di espandere la dimensione del volume dell'istanza prima della distribuzione.

  • Clonare questo repository
git clone https://github.com/aws-samples/bedrock-claude-chat
  • Installare i pacchetti npm
cd bedrock-claude-chat
cd cdk
npm ci
  • Se necessario, modificare le seguenti voci in cdk.json

    • bedrockRegion: Regione in cui Bedrock è disponibile. NOTA: Bedrock NON supporta al momento tutte le regioni.
    • allowedIpV4AddressRanges, allowedIpV6AddressRanges: Intervallo di indirizzi IP consentiti.
    • enableLambdaSnapStart: Per impostazione predefinita è true. Impostare su false se si distribuisce in una regione che non supporta Lambda SnapStart per funzioni Python.
  • Prima di distribuire CDK, è necessario eseguire il bootstrap una volta per la regione in cui si sta distribuendo.

npx cdk bootstrap
  • Distribuire questo progetto di esempio
npx cdk deploy --require-approval never --all
  • Otterrai un output simile al seguente. L'URL dell'app web verrà mostrato in BedrockChatStack.FrontendURL, quindi accedervi tramite browser.
 ✅  BedrockChatStack

✨  Deployment time: 78.57s

Outputs:
BedrockChatStack.AuthUserPoolClientIdXXXXX = xxxxxxx
BedrockChatStack.AuthUserPoolIdXXXXXX = ap-northeast-1_XXXX
BedrockChatStack.BackendApiBackendApiUrlXXXXX = https://xxxxx.execute-api.ap-northeast-1.amazonaws.com
BedrockChatStack.FrontendURL = https://xxxxx.cloudfront.net

Altri

Configurare il supporto per i modelli Mistral

Aggiorna enableMistral a true in cdk.json, ed esegui npx cdk deploy.

...
  "enableMistral": true,

[!Importante] Questo progetto si concentra sui modelli Anthropic Claude, i modelli Mistral sono supportati in modo limitato. Ad esempio, gli esempi di prompt si basano sui modelli Claude. Questa è un'opzione solo per Mistral, una volta abilitati i modelli Mistral, potrai utilizzare solo i modelli Mistral per tutte le funzionalità di chat, NON sia Claude che Mistral.

Configurare la generazione di testo predefinita

Gli utenti possono regolare i parametri di generazione del testo dalla schermata di creazione del bot personalizzato. Se il bot non viene utilizzato, verranno utilizzati i parametri predefiniti impostati in config.py.

DEFAULT_GENERATION_CONFIG = {
    "max_tokens": 2000,
    "top_k": 250,
    "top_p": 0.999,
    "temperature": 0.6,
    "stop_sequences": ["Human: ", "Assistant: "],
}

Rimuovere risorse

Se si utilizza CLI e CDK, eseguire npx cdk destroy. Altrimenti, accedere a CloudFormation e quindi eliminare manualmente BedrockChatStack e FrontendWafStack. Notare che FrontendWafStack si trova nella regione us-east-1.

Impostazioni Lingua

Questo asset rileva automaticamente la lingua utilizzando i18next-browser-languageDetector. È possibile cambiare lingua dal menu dell'applicazione. In alternativa, è possibile utilizzare la Stringa di Query per impostare la lingua come mostrato di seguito.

https://example.com?lng=ja

Disabilitare la registrazione autonoma

Questo esempio ha la registrazione autonoma abilitata per impostazione predefinita. Per disabilitare la registrazione autonoma, aprire cdk.json e impostare selfSignUpEnabled su false. Se si configura un provider di identità esterno, il valore verrà ignorato e disabilitato automaticamente.

Limitare i Domini per gli Indirizzi Email di Registrazione

Per impostazione predefinita, questo esempio non limita i domini per gli indirizzi email di registrazione. Per consentire la registrazione solo da domini specifici, aprire cdk.json e specificare i domini come elenco in allowedSignUpEmailDomains.

"allowedSignUpEmailDomains": ["example.com"],

Provider di Identità Esterno

Questo esempio supporta un provider di identità esterno. Attualmente supportiamo Google e provider OIDC personalizzato.

Aggiungere automaticamente nuovi utenti ai gruppi

Questo esempio ha i seguenti gruppi per dare autorizzazioni agli utenti:

Se si desidera che i nuovi utenti creati si uniscano automaticamente a gruppi, è possibile specificarli in cdk.json.

"autoJoinUserGroups": ["CreatingBotAllowed"],

Per impostazione predefinita, i nuovi utenti creati verranno aggiunti al gruppo CreatingBotAllowed.

Configurare Repliche RAG

enableRagReplicas è un'opzione in cdk.json che controlla le impostazioni delle repliche per il database RAG, specificamente le Knowledge Bases che utilizzano Amazon OpenSearch Serverless.

  • Predefinito: true
  • true: Migliora la disponibilità abilitando repliche aggiuntive, adatto per ambienti di produzione ma aumentando i costi.
  • false: Riduce i costi utilizzando meno repliche, adatto per sviluppo e test.

Questa è un'impostazione a livello di account/regione che interessa l'intera applicazione piuttosto che singoli bot.

[!Nota] A giugno 2024, Amazon OpenSearch Serverless supporta 0,5 OCU, riducendo i costi di ingresso per carichi di lavoro su piccola scala. Le distribuzioni di produzione possono iniziare con 2 OCU, mentre i carichi di lavoro di sviluppo/test possono utilizzare 1 OCU. OpenSearch Serverless si ridimensiona automaticamente in base alle richieste del carico di lavoro. Per maggiori dettagli, visitare annuncio.

Inferenza tra regioni

L'inferenza tra regioni consente ad Amazon Bedrock di instradare dinamicamente le richieste di inferenza del modello tra più regioni AWS, migliorando la velocità effettiva e la resilienza durante i periodi di picco della domanda. Per configurare, modificare cdk.json.

"enableBedrockCrossRegionInference": true

Lambda SnapStart

Lambda SnapStart migliora i tempi di avvio a freddo per le funzioni Lambda, fornendo tempi di risposta più veloci per una migliore esperienza utente. D'altra parte, per le funzioni Python, c'è un addebito a seconda della dimensione della cache e non è disponibile in alcune regioni attualmente. Per disabilitare SnapStart, modificare cdk.json.

"enableLambdaSnapStart": false

Configurare Dominio Personalizzato

È possibile configurare un dominio personalizzato per la distribuzione CloudFront impostando i seguenti parametri in cdk.json:

{
  "alternateDomainName": "chat.example.com",
  "hostedZoneId": "Z0123456789ABCDEF"
}
  • alternateDomainName: Il nome di dominio personalizzato per l'applicazione di chat (es. chat.example.com)
  • hostedZoneId: L'ID della zona ospitata di Route 53 in cui verranno create i record DNS

Quando questi parametri vengono forniti, la distribuzione eseguirà automaticamente:

  • Creare un certificato ACM con convalida DNS nella regione us-east-1
  • Creare i record DNS necessari nella zona ospitata di Route 53
  • Configurare CloudFront per utilizzare il dominio personalizzato

[!Nota] Il dominio deve essere gestito da Route 53 nel proprio account AWS. L'ID della zona ospitata può essere trovato nella console di Route 53.

Sviluppo Locale

Vedere SVILUPPO LOCALE.

Contributo

Grazie per aver considerato di contribuire a questo repository! Accogliamo con favore correzioni di bug, traduzioni linguistiche (i18n), miglioramenti delle funzionalità, strumenti agente e altri miglioramenti.

Per miglioramenti delle funzionalità e altri miglioramenti, prima di creare una Pull Request, apprezzeremmo molto se si potesse creare un Issue di Richiesta Funzionalità per discutere l'approccio e i dettagli dell'implementazione. Per correzioni di bug e traduzioni linguistiche (i18n), procedere direttamente con la creazione di una Pull Request.

Si prega inoltre di dare un'occhiata alle seguenti linee guida prima di contribuire:

Contatti

🏆 Contributori Significativi

Contributori

contributori di bedrock claude chat

Licenza

Questa libreria è distribuita con licenza MIT-0. Consulta il file di LICENZA.