Skip to content

Latest commit

 

History

History
307 lines (204 loc) · 16.8 KB

README_ms-MY.md

File metadata and controls

307 lines (204 loc) · 16.8 KB

Bedrock Claude Chat (Nova)

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

Warning

Versi 2 telah dikeluarkan. Untuk mengemas kini, sila semak semula panduan migrasi migration guide dengan teliti. Tanpa penjagaan, BOT DARI V1 AKAN MENJADI TIDAK BOLEH DIGUNAKAN.

Chatbot pelbagai bahasa yang menggunakan model LLM yang disediakan oleh Amazon Bedrock untuk AI generatif.

Tonton Gambaran Keseluruhan dan Pemasangan di YouTube

Overview

Perbualan Asas

Personalisasi Bot

Tambahkan arahan anda sendiri dan berikan pengetahuan luar seperti URL atau fail (a.k.a RAG. Bot boleh dikongsi di kalangan pengguna aplikasi. Bot yang disesuaikan juga boleh diterbitkan sebagai API bebas (Lihat butiran).

Important

Atas sebab tadbir urus, hanya pengguna yang dibenarkan sahaja yang boleh membuat bot yang disesuaikan. Untuk membenarkan penciptaan bot yang disesuaikan, pengguna mestilah ahli kumpulan yang dipanggil CreatingBotAllowed, yang boleh disediakan melalui konsol pengurusan > Amazon Cognito User pools atau aws cli. Sila ambil perhatian bahawa ID kumpulan pengguna boleh dirujuk dengan mengakses CloudFormation > BedrockChatStack > Outputs > AuthUserPoolIdxxxx.

Papan pemuka pentadbir

Papan pemuka pentadbir

Analisis penggunaan untuk setiap pengguna / bot pada papan pemuka pentadbir. butiran

Agen yang didayakan LLM

Agen yang didayakan LLM

Dengan menggunakan fungsi Agen, chatbot anda boleh mengendalikan tugas yang lebih kompleks secara automatik. Sebagai contoh, untuk menjawab soalan pengguna, Agen boleh mengambil maklumat yang diperlukan daripada alat luar atau memecahkan tugas kepada beberapa langkah untuk diproses.

🚀 Pengploian Super-Mudah

  • Di kawasan us-east-1, buka Akses Model Bedrock > Urus akses model > Tandakan semua Anthropic / Claude 3, semua Amazon / Nova, Amazon / Titan Text Embeddings V2 dan Cohere / Embed Multilingual kemudian Simpan perubahan.
Tangkapan Skrin

  • Buka CloudShell di kawasan tempat anda ingin melakukan pengploian
  • Jalankan pengploian melalui arahan berikut. Jika anda ingin menetapkan versi untuk diploikan atau perlu menggunakan dasar keselamatan, sila nyatakan parameter yang sesuai dari Parameter Pilihan.
git clone https://github.com/aws-samples/bedrock-claude-chat.git
cd bedrock-claude-chat
chmod +x bin.sh
./bin.sh
  • Anda akan ditanya sama ada pengguna baru atau menggunakan v2. Jika anda bukan pengguna yang berterusan dari v0, sila masukkan y.

Parameter Pilihan

Anda boleh menetapkan parameter berikut semasa pengploian untuk meningkatkan keselamatan dan penyesuaian:

  • --disable-self-register: Lumpuhkan pendaftaran sendiri (lalai: didayakan). Jika bendera ini ditetapkan, anda perlu membuat semua pengguna pada cognito dan ia tidak akan membenarkan pengguna mendaftar akaun mereka sendiri.
  • --enable-lambda-snapstart: Dayakan Lambda SnapStart (lalai: dilumpuhkan). Jika bendera ini ditetapkan, ia meningkatkan masa permulaan sejuk untuk fungsi Lambda, memberikan masa respons yang lebih pantas untuk pengalaman pengguna yang lebih baik.
  • --ipv4-ranges: Senarai rentang IPv4 yang dibenarkan yang dipisahkan dengan koma. (lalai: benarkan semua alamat ipv4)
  • --ipv6-ranges: Senarai rentang IPv6 yang dibenarkan yang dipisahkan dengan koma. (lalai: benarkan semua alamat ipv6)
  • --disable-ipv6: Lumpuhkan sambungan melalui IPv6. (lalai: didayakan)
  • --allowed-signup-email-domains: Senarai domain e-mel yang dibenarkan untuk pendaftaran yang dipisahkan dengan koma. (lalai: tiada sekatan domain)
  • --bedrock-region: Tentukan kawasan di mana bedrock tersedia. (lalai: us-east-1)
  • --repo-url: Repositori Bedrock Claude Chat yang disesuaikan untuk diploikan, jika fork atau kawalan sumber yang disesuaikan. (lalai: https://github.com/aws-samples/bedrock-claude-chat.git)
  • --version: Versi Bedrock Claude Chat untuk diploikan. (lalai: versi terkini dalam pembangunan)
  • --cdk-json-override: Anda boleh mengatasi mana-mana nilai konteks CDK semasa pengploian menggunakan blok JSON override. Ini membolehkan anda mengubah konfigurasi tanpa mengedit fail cdk.json secara langsung.

Contoh penggunaan:

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

JSON override mesti mengikuti struktur yang sama seperti cdk.json. Anda boleh mengatasi mana-mana nilai konteks termasuk:

  • selfSignUpEnabled
  • enableLambdaSnapStart
  • allowedIpV4AddressRanges
  • allowedIpV6AddressRanges
  • allowedSignUpEmailDomains
  • bedrockRegion
  • enableRagReplicas
  • enableBedrockCrossRegionInference
  • Dan nilai konteks lain yang ditakrifkan dalam cdk.json

[!Nota] Nilai override akan digabungkan dengan konfigurasi cdk.json sedia ada semasa masa pengploian dalam pembinaan kod AWS. Nilai yang dinyatakan dalam override akan mempunyai keutamaan berbanding nilai dalam cdk.json.

Contoh arahan dengan parameter:

./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"
  • Selepas kira-kira 35 minit, anda akan mendapatkan output berikut, yang boleh anda akses dari pelayar anda
Frontend URL: https://xxxxxxxxx.cloudfront.net

Skrin pendaftaran akan muncul seperti yang ditunjukkan di atas, di mana anda boleh mendaftar e-mel anda dan log masuk.

[!Penting] Tanpa menetapkan parameter pilihan, kaedah pengploian ini membenarkan sesiapa yang mengetahui URL untuk mendaftar. Untuk kegunaan pengeluaran, sangat disyorkan untuk menambah sekatan alamat IP dan melumpuhkan pendaftaran sendiri untuk mengurangkan risiko keselamatan (anda boleh mentakrifkan allowed-signup-email-domains untuk menyekat pengguna supaya hanya alamat e-mel dari domain syarikat anda yang boleh mendaftar). Gunakan kedua-dua ipv4-ranges dan ipv6-ranges untuk sekatan alamat IP, dan lumpuhkan pendaftaran sendiri dengan menggunakan disable-self-register semasa melaksanakan ./bin.

[!PETUA] Jika Frontend URL tidak muncul atau Bedrock Claude Chat tidak berfungsi dengan baik, ia mungkin masalah dengan versi terkini. Dalam kes ini, sila tambah --version "v1.2.6" ke parameter dan cuba pengploian semula.

Senibina

Ia adalah senibina yang dibina di atas perkhidmatan terurus AWS, menghapuskan keperluan pengurusan infrastruktur. Dengan menggunakan Amazon Bedrock, tiada keperluan untuk berkomunikasi dengan API di luar AWS. Ini membolehkan penggunaan aplikasi yang boleh diskalakan, boleh dipercayai, dan selamat.

Deploy menggunakan CDK

Deployment Super-mudah menggunakan AWS CodeBuild untuk melakukan deployment melalui CDK secara dalaman. Bahagian ini menerangkan prosedur untuk deployment terus dengan CDK.

  • Sediakan persekitaran UNIX, Docker dan runtime Node.js. Jika tidak, anda boleh menggunakan Cloud9

[!Penting] Jika ruang storan tidak mencukupi dalam persekitaran tempatan semasa deployment, CDK bootstrapping mungkin menghasilkan ralat. Jika anda sedang berjalan di Cloud9 dll., kami mencadangkan mengembangkan saiz volum contoh sebelum deployment.

  • Klon repositori ini
git clone https://github.com/aws-samples/bedrock-claude-chat
  • Pasang pakej npm
cd bedrock-claude-chat
cd cdk
npm ci
  • Jika perlu, edit entri berikut dalam cdk.json jika perlu.

    • bedrockRegion: Wilayah di mana Bedrock tersedia. NOTA: Bedrock TIDAK menyokong semua wilayah pada masa ini.
    • allowedIpV4AddressRanges, allowedIpV6AddressRanges: Julat Alamat IP yang dibenarkan.
    • enableLambdaSnapStart: Secara lalai adalah true. Tetapkan ke false jika deployment ke wilayah yang tidak menyokong Lambda SnapStart untuk fungsi Python.
  • Sebelum deployment CDK, anda perlu bekerja dengan Bootstrap sekali untuk wilayah yang anda deploy.

npx cdk bootstrap
  • Deploy projek sampel ini
npx cdk deploy --require-approval never --all
  • Anda akan mendapatkan output yang serupa dengan berikut. URL aplikasi web akan dikeluarkan dalam BedrockChatStack.FrontendURL, jadi sila akses dari pelayar anda.
 ✅  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

Lain-lain

Konfigurasikan Sokongan Model Mistral

Kemas kini enableMistral kepada true dalam cdk.json, dan jalankan npx cdk deploy.

...
  "enableMistral": true,

[!Penting] Projek ini fokus pada model Anthropic Claude, model Mistral mempunyai sokongan terhad. Contohnya, contoh prompt adalah berdasarkan model Claude. Ini adalah pilihan Mistral sahaja, sebaik sahaja anda menghidupkan model Mistral, anda hanya boleh menggunakan model Mistral untuk semua ciri sembang, BUKAN kedua-dua model Claude dan Mistral.

Konfigurasikan generasi teks lalai

Pengguna boleh melaraskan parameter generasi teks dari skrin penciptaan bot tersuai. Jika bot tidak digunakan, parameter lalai yang ditetapkan dalam config.py akan digunakan.

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

Alih keluar sumber daya

Jika menggunakan cli dan CDK, sila npx cdk destroy. Jika tidak, akses CloudFormation dan kemudian padamkan BedrockChatStack dan FrontendWafStack secara manual. Sila ambil perhatian bahawa FrontendWafStack berada di rantau us-east-1.

Tetapan Bahasa

Aset ini secara automatik mengesan bahasa menggunakan i18next-browser-languageDetector. Anda boleh menukar bahasa dari menu aplikasi. Sebagai alternatif, anda boleh menggunakan Query String untuk menetapkan bahasa seperti yang ditunjukkan di bawah.

https://example.com?lng=ja

Lumpuhkan pendaftaran sendiri

Sampel ini mempunyai pendaftaran sendiri yang didayakan secara lalai. Untuk melumpuhkan pendaftaran sendiri, buka cdk.json dan tukar selfSignUpEnabled kepada false. Jika anda mengkonfigurasi penyedia identiti luar, nilai akan diabaikan dan automatik dilumpuhkan.

Hadkan Domain untuk Alamat E-mel Pendaftaran

Secara lalai, sampel ini tidak menghadkan domain untuk alamat e-mel pendaftaran. Untuk membenarkan pendaftaran hanya dari domain tertentu, buka cdk.json dan nyatakan domain sebagai senarai dalam allowedSignUpEmailDomains.

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

Penyedia Identiti Luar

Sampel ini menyokong penyedia identiti luar. Pada masa ini kami menyokong Google dan penyedia OIDC tersuai.

Tambah pengguna baharu ke kumpulan secara automatik

Sampel ini mempunyai kumpulan berikut untuk memberi izin kepada pengguna:

Jika anda ingin pengguna yang baru dicipta secara automatik menyertai kumpulan, anda boleh menyatakannya dalam cdk.json.

"autoJoinUserGroups": ["CreatingBotAllowed"],

Secara lalai, pengguna yang baru dicipta akan disertakan ke kumpulan CreatingBotAllowed.

[Selebihnya terjemahan sama seperti yang diberikan, dengan memastikan format markdown dan struktur kekal sama]

Kenalan

🏆 Penyumbang Utama

Penyumbang

penyumbang bedrock claude chat

Lesen

Pustaka ini dibenarkan di bawah Lesen MIT-0. Lihat fail LESEN.