Skip to content

Latest commit

 

History

History
372 lines (245 loc) · 19.7 KB

README_nb-NO.md

File metadata and controls

372 lines (245 loc) · 19.7 KB

Bedrock Claude Chat (Nova)

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

[!Advarsel]
V2 er lansert. For å oppdatere, vennligst les nøye gjennom migrasjonsveiledningen. Uten forsiktighet vil BOTS FRA V1 BLI UBRUKELIGE.

En flerspråklig chatbot som bruker LLM-modeller levert av Amazon Bedrock for generativ AI.

Se oversikt og installasjon på YouTube

Oversikt

Grunnleggende samtale

Bot-personalisering

Legg til din egen instruksjon og gi ekstern kunnskap som URL eller filer (også kjent som RAG). Boten kan deles mellom applikasjonens brukere. Den tilpassede boten kan også publiseres som en frittstående API (Se detaljer).

[!Viktig] Av styringsmessige årsaker kan kun tillatte brukere opprette tilpassede bots. For å tillate opprettelse av tilpassede bots, må brukeren være medlem av gruppen kalt CreatingBotAllowed, som kan settes opp via administrasjonskonsollen > Amazon Cognito User pools eller aws cli. Merk at brukergruppens ID kan refereres ved å gå til CloudFormation > BedrockChatStack > Outputs > AuthUserPoolIdxxxx.

Administratorpanel

Administratorpanel

Analyser bruk for hver bruker / bot på administratorpanelet. detaljer

LLM-drevet Agent

LLM-drevet Agent

Ved å bruke Agent-funksjonaliteten kan chatboten automatisk håndtere mer komplekse oppgaver. For eksempel kan Agenten hente nødvendig informasjon fra eksterne verktøy eller dele opp oppgaven i flere trinn for behandling.

🚀 Supre-enkel distribusjon

  • I us-east-1-regionen, åpne Bedrock Model access > Administrer modelltilgang > Merk alle Anthropic / Claude 3, alle Amazon / Nova, Amazon / Titan Text Embeddings V2 og Cohere / Embed Multilingual, og så Lagre endringer.
Skjermbilde

  • Åpne CloudShell i regionen der du vil distribuere
  • Kjør distribusjon via følgende kommandoer. Hvis du vil spesifisere versjonen som skal distribueres eller trenger å bruke sikkerhetsretningslinjer, kan du angi de aktuelle parameterne fra Valgfrie parametere.
git clone https://github.com/aws-samples/bedrock-claude-chat.git
cd bedrock-claude-chat
chmod +x bin.sh
./bin.sh
  • Du vil bli spurt om du er en ny bruker eller bruker v2. Hvis du ikke er en fortsatt bruker fra v0, kan du skrive inn y.

Valgfrie parametere

Du kan spesifisere følgende parametere under distribusjon for å forbedre sikkerhet og tilpasning:

  • --disable-self-register: Deaktiver selvregistrering (standard: aktivert). Hvis dette flagget er satt, må du opprette alle brukere på Cognito, og det vil ikke tillate brukere å registrere seg selv.
  • --enable-lambda-snapstart: Aktiver Lambda SnapStart (standard: deaktivert). Hvis dette flagget er satt, forbedres oppstartstider for Lambda-funksjoner, noe som gir raskere responstider for bedre brukeropplevelse.
  • --ipv4-ranges: Kommaseparert liste over tillatte IPv4-områder. (standard: tillat alle IPv4-adresser)
  • --ipv6-ranges: Kommaseparert liste over tillatte IPv6-områder. (standard: tillat alle IPv6-adresser)
  • --disable-ipv6: Deaktiver tilkoblinger over IPv6. (standard: aktivert)
  • --allowed-signup-email-domains: Kommaseparert liste over tillatte e-postdomener for påmelding. (standard: ingen domenerestriksjoner)
  • --bedrock-region: Definer regionen der Bedrock er tilgjengelig. (standard: us-east-1)
  • --repo-url: Den egendefinerte repositoryen til Bedrock Claude Chat som skal distribueres, hvis den er forket eller har egendefinert kildekontroll. (standard: https://github.com/aws-samples/bedrock-claude-chat.git)
  • --version: Versjonen av Bedrock Claude Chat som skal distribueres. (standard: siste versjon under utvikling)
  • --cdk-json-override: Du kan overstyre CDK-kontekstverdier under distribusjon ved å bruke overstyrings-JSON-blokken. Dette lar deg endre konfigurasjonen uten å redigere cdk.json-filen direkte.

Eksempel på bruk:

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

Overstyrings-JSON-en må følge samme struktur som cdk.json. Du kan overstyre alle kontekstverdier, inkludert:

  • selfSignUpEnabled
  • enableLambdaSnapStart
  • allowedIpV4AddressRanges
  • allowedIpV6AddressRanges
  • allowedSignUpEmailDomains
  • bedrockRegion
  • enableRagReplicas
  • enableBedrockCrossRegionInference
  • Og andre kontekstverdier definert i cdk.json

[!Merk] Overstyringsverdiene vil bli slått sammen med den eksisterende cdk.json-konfigurasjonen under distribusjon i AWS-kodebygning. Verdier som er angitt i overstyrings-JSON-en, vil ha forrang fremfor verdiene i cdk.json.

Eksempelkommando med parametere:

./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"
  • Etter omtrent 35 minutter vil du få følgende output, som du kan åpne i nettleseren din
Frontend URL: https://xxxxxxxxx.cloudfront.net

Påmeldingsskjermen vil vises som vist ovenfor, hvor du kan registrere e-posten din og logge deg på.

[!Viktig] Uten å angi den valgfrie parameteren vil denne distribusjonsmetoden tillate at alle som kjenner URL-en kan melde seg på. For produksjonsbruk anbefales det sterkt å legge til IP-adressebegrensninger og deaktivere selvregistrering for å redusere sikkerhetsrisikoer (du kan definere allowed-signup-email-domains for å begrense brukere slik at bare e-postadresser fra selskapets domene kan melde seg på). Bruk både ipv4-ranges og ipv6-ranges for IP-adressebegrensninger, og deaktiver selvregistrering ved å bruke disable-self-register når du kjører ./bin.

[!TIPS] Hvis Frontend URL ikke vises eller Bedrock Claude Chat ikke fungerer ordentlig, kan det være et problem med den nyeste versjonen. I så fall kan du legge til --version "v1.2.6" i parameterne og prøve distribusjon på nytt.

Arkitektur

Det er en arkitektur bygget på AWS-administrerte tjenester, som eliminerer behovet for infrastrukturhåndtering. Ved bruk av Amazon Bedrock er det ikke nødvendig å kommunisere med APIer utenfor AWS. Dette muliggjør distribusjon av skalerbare, pålitelige og sikre applikasjoner.

Distribuer ved hjelp av CDK

Super-enkel distribusjon bruker AWS CodeBuild til å utføre distribusjon med CDK internt. Denne seksjonen beskriver fremgangsmåten for å distribuere direkte med CDK.

  • Vennligst ha UNIX, Docker og et Node.js-kjøremiljø. Hvis ikke, kan du også bruke Cloud9

[!Viktig] Hvis det er utilstrekkelig lagringskapasitet i det lokale miljøet under distribusjon, kan CDK-bootstrapping resultere i en feil. Hvis du kjører i Cloud9 osv., anbefaler vi å utvide volumstørrelsen på instansen før distribusjon.

  • Klone dette repositoriet
git clone https://github.com/aws-samples/bedrock-claude-chat
  • Installer npm-pakker
cd bedrock-claude-chat
cd cdk
npm ci
  • Rediger om nødvendig følgende oppføringer i cdk.json ved behov.

    • bedrockRegion: Region hvor Bedrock er tilgjengelig. MERK: Bedrock støtter IKKE alle regioner for øyeblikket.
    • allowedIpV4AddressRanges, allowedIpV6AddressRanges: Tillatte IP-adresseområder.
    • enableLambdaSnapStart: Standard er true. Sett til false hvis du distribuerer til en region som ikke støtter Lambda SnapStart for Python-funksjoner.
  • Før du distribuerer CDK, må du bootstrappe én gang for regionen du distribuerer til.

npx cdk bootstrap
  • Distribuer dette eksempelprosjektet
npx cdk deploy --require-approval never --all
  • Du vil få utdata som ligner følgende. URL-en til web-appen vil bli vist i BedrockChatStack.FrontendURL, så vennligst åpne den i nettleseren din.
 ✅  BedrockChatStack

✨  Distribusjonstid: 78.57s

Utdata:
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

Andre

Konfigurer støtte for Mistral-modeller

Oppdater enableMistral til true i cdk.json, og kjør npx cdk deploy.

...
  "enableMistral": true,

[!Viktig] Dette prosjektet fokuserer på Anthropic Claude-modeller, Mistral-modellene er begrenset støttet. For eksempel er prompteksempler basert på Claude-modeller. Dette er et Mistral-spesifikt alternativ, når du har slått på Mistral-modeller, kan du bare bruke Mistral-modeller for alle chat-funksjonene, IKKE både Claude og Mistral-modeller.

Konfigurer standard tekstgenerering

Brukere kan justere tekstgeneringsparameterne fra skjermen for opprettelse av egen bot. Hvis boten ikke brukes, vil standardparameterne satt i config.py bli brukt.

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

Fjern ressurser

Hvis du bruker cli og CDK, kjør npx cdk destroy. Hvis ikke, gå til CloudFormation og slett BedrockChatStack og FrontendWafStack manuelt. Merk at FrontendWafStack er i us-east-1-regionen.

Språkinnstillinger

Denne ressursen oppdager automatisk språk ved hjelp av i18next-browser-languageDetector. Du kan bytte språk fra applikasjonens meny. Alternativt kan du bruke Query String for å angi språk som vist nedenfor.

https://example.com?lng=ja

Deaktiver selvregistrering

Denne malen har selvregistrering aktivert som standard. For å deaktivere selvregistrering, åpne cdk.json og sett selfSignUpEnabled til false. Hvis du konfigurerer ekstern identitetsleverandør, vil verdien bli ignorert og automatisk deaktivert.

Begrens domener for påmeldingse-postadresser

Som standard begrenser ikke denne malen domenene for påmeldingse-postadresser. For å tillate påmelding kun fra bestemte domener, åpne cdk.json og angi domenene som en liste i allowedSignUpEmailDomains.

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

Ekstern identitetsleverandør

Denne malen støtter ekstern identitetsleverandør. For øyeblikket støtter vi Google og egen OIDC-leverandør.

Legg til nye brukere i grupper automatisk

Denne malen har følgende grupper for å gi tillatelser til brukere:

Hvis du vil at nyopprettede brukere automatisk skal bli med i grupper, kan du angi dem i cdk.json.

"autoJoinUserGroups": ["CreatingBotAllowed"],

Som standard vil nyopprettede brukere bli med i CreatingBotAllowed-gruppen.

Konfigurer RAG-replikaer

enableRagReplicas er et alternativ i cdk.json som styrer replikainnstillingene for RAG-databasen, spesielt Knowledge Bases som bruker Amazon OpenSearch Serverless.

  • Standard: true
  • true: Forbedrer tilgjengelighet ved å aktivere flere replikaer, egnet for produksjonsmiljøer, men øker kostnadene.
  • false: Reduserer kostnader ved å bruke færre replikaer, egnet for utvikling og testing.

Dette er en konto-/regioninnstilling som påvirker hele applikasjonen, ikke individuelle bots.

[!Merk] Per juni 2024 støtter Amazon OpenSearch Serverless 0,5 OCU, som senker oppstartskostnadene for småskala arbeidsbelastninger. Produksjonsdistribusjoner kan starte med 2 OCUer, mens dev/test-arbeidsbelastninger kan bruke 1 OCU. OpenSearch Serverless skaleres automatisk basert på arbeidsbelastningskrav. For mer detaljer, besøk kunngjøringen.

Kryssregional inferens

Kryssregional inferens lar Amazon Bedrock dynamisk rute modellinferensforespørsler på tvers av flere AWS-regioner, noe som forbedrer gjennomstrømning og motstandsdyktighet under perioder med høy etterspørsel. For å konfigurere, rediger cdk.json.

"enableBedrockCrossRegionInference": true

Lambda SnapStart

Lambda SnapStart forbedrer oppstartstidene for Lambda-funksjoner og gir raskere svartider for bedre brukeropplevelse. På den annen side er det for Python-funksjoner en avgift avhengig av cachestørrelse og ikke tilgjengelig i noen regioner for øyeblikket. For å deaktivere SnapStart, rediger cdk.json.

"enableLambdaSnapStart": false

Konfigurer egendefinert domene

Du kan konfigurere et egendefinert domene for CloudFront-distribusjonen ved å angi følgende parametere i cdk.json:

{
  "alternateDomainName": "chat.example.com",
  "hostedZoneId": "Z0123456789ABCDEF"
}
  • alternateDomainName: Det egendefinerte domenenavnet for chat-applikasjonen (f.eks. chat.example.com)
  • hostedZoneId: ID-en til Route 53-vertsonen der domeneopptegnelsene vil bli opprettet

Når disse parameterne er oppgitt, vil distribusjonen automatisk:

  • Opprette et ACM-sertifikat med DNS-validering i us-east-1-regionen
  • Opprette de nødvendige DNS-oppføringene i Route 53-vertsonen
  • Konfigurere CloudFront til å bruke ditt egendefinerte domene

[!Merk] Domenet må administreres av Route 53 i AWS-kontoen din. Vertssonens ID kan finnes i Route 53-konsollen.

Lokal utvikling

Se LOKAL UTVIKLING.

Bidrag

Takk for at du vurderer å bidra til dette repositoriet! Vi ønsker feilrettinger, språkoversettelser (i18n), forbedringer av funksjoner, agent-verktøy og andre forbedringer.

For funksjonsforbedringer og andre forbedringer, før du oppretter en Pull Request, setter vi stor pris på om du kan opprette en Feature Request Issue for å diskutere implementeringsmetoden og detaljene. For feilrettinger og språkoversettelser (i18n), kan du gå videre med å opprette en Pull Request direkte.

Ta også en titt på følgende retningslinjer før du bidrar:

Kontakter

🏆 Betydelige bidragsytere

Bidragsytere

bedrock claude chat bidragsytere

Lisens

Dette biblioteket er lisensiert under MIT-0-lisensen. Se LICENSE-filen.