


Hari ini saya akan menerangkan cara untuk pergi bekerja dengan Bedrock dengan selamat dan boleh dipercayai dan, pada masa yang sama, belajar sedikit tentang kopi.
Anda akan belajar cara menggunakan API Amazon Bedrock bagi model Teks dan Multimodal menggunakan Python untuk menjana nama, logo dan menu untuk kafe anda dan untuk mencipta ejen yang menyambung ke API Shopify untuk menerima pesanan.
Shopify ialah (pada pendapat saya) platform eCommerce terbaik yang wujud.
Dan sama seperti AWS, Shopify mempunyai API untuk segala-galanya dan platform untuk pembangun
Akhirnya anda akan membuat bahagian hadapan menggunakan Streamlit untuk memberikan pengalaman pengguna yang unik dan memberi kehidupan kepada ejen anda.
? Indeks
- Memanfaatkan API Batuan Dasar
- Mencipta ejen Amazon Bedrock yang berinteraksi dengan Shopify
? Menggunakan Amazon Bedrock API untuk menjana nama, logo dan menu untuk kedai kopi anda
Saat membuka kafeteria atau mempunyai idea kreatif untuk mana-mana perniagaan adalah peluang terbaik untuk bergantung pada Generative AI (GenAI) dan memanfaatkannya sepenuhnya.
Melalui Amazon Bedrock anda boleh menggunakannya, tetapi... Bagaimanakah perkhidmatan itu digunakan?
Setiap perkhidmatan dalam AWS mempunyai API, dan Amazon Bedrock tidak terkecuali Di bawah saya menerangkan cara menggunakan Amazon Bedrock API melalui contoh untuk menjana nama dan menu untuk Kafeteria semasa dalam perjalanan.
Dan saya juga menunjukkan kepada anda cara menggunakan model multimodal yang mampu menganalisis imej.
Arahan untuk memprogram skrip Python untuk dijalankan secara setempat atau dalam fungsi Lambda untuk menggunakan Amazon Bedrock:
Mula-mula anda mesti mendayakan akses kepada model dalam Arahan Batuan Dasar di sini
Keperluan:
- Akaun di AWS, jika anda tidak mempunyai akaun, anda boleh membukanya di sini
- Arahan AWS CLI di sini
- Python 3.11 atau lebih tinggi
Langkah 1) Cipta persekitaran Python maya Arahan di sini
Dalam folder bedrock_examples repositori ini, anda akan menemui contoh berbeza yang digunakan di bawah untuk menggunakan model asas.
Dalam folder gesaan anda akan menemui gesaan contoh, yang boleh anda gunakan untuk menjana nama, Menu dan gesaan untuk dihantar kepada model penjanaan imej yang boleh anda gunakan di taman permainan Amazon Bedrock dan melalui menggunakan API daripada Python.
Langkah 2) Pasang keperluan
pip install -r requirements.txt
Langkah 3) Konfigurasikan Boto3 Maklumat lanjut tentang boto3
Di sini saya mengkonfigurasi klien AWS memberitahunya untuk menggunakan profil genaiday yang dipasang pada komputer saya dan memanggil klien bedrock-runtime yang akan membolehkan saya menggunakan model asas.
#Cambiar la region y el perfil de AWS aws = boto3.session.Session(profile_name='genaiday', region_name=region) client = aws.client('bedrock-runtime')
Langkah 4) Contoh: Guna model teks
Fungsi ini memanggil kaedah invoke_model dan saya menghantar gesaan yang ditunjukkan oleh pengguna dan mengembalikan respons
Bahagian yang paling penting ialah mesej yang dihantar:
pip install -r requirements.txt
#Cambiar la region y el perfil de AWS aws = boto3.session.Session(profile_name='genaiday', region_name=region) client = aws.client('bedrock-runtime')
Contoh:
{ "role": "user", "content": [{ "type": "text", "text": prompt }] }
Langkah 5) Contoh: Guna model multimodal.
Di sini prosesnya serupa, cuma anda perlu menambah jenis mime fail yang dihantar, untuk ini terdapat fungsi yang mendapatkan mimetype
berdasarkan nama fail
def call_text(prompt,modelId="anthropic.claude-3-haiku-20240307-v1:0"): #esta función es para llamar un modelo de texto config = { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 4096, "messages": [ { "role": "user", "content": [{ "type": "text", "text": prompt }] } ] } body = json.dumps(config) modelId = modelId accept = "application/json" contentType = "application/json" response = client.invoke_model( body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get("body").read()) results = response_body.get("content")[0].get("text") return results
Kemudian untuk menggunakan model, mesej mestilah yang berikut:
print("Haiku") print(call_text("Estoy buscando armar un local de café al paso, dame 5 nombres para un local.")
Seruan model kelihatan seperti ini:
def read_mime_type(file_path): # Este hack es para versiones de python anteriores a 3.13 # Esta función lee el mime type de un archivo mimetypes.add_type('image/webp', '.webp') mime_type = mimetypes.guess_type(file_path) return mime_type[0]
Contoh:
"messages": [ { "role": "user", "content": [ { "type": "image", "source": { "type": "base64", "media_type": read_mime_type(file), "data": base64.b64encode(open(file, "rb").read()).decode("utf-8") } }, { "type": "text", "text": caption }] } ]
? Mencipta ejen Amazon Bedrock yang berinteraksi dengan Shopify
Untuk mencipta ejen Amazon Bedrock:
Pastikan anda mempunyai model Batuan Dasar yang anda mahu gunakan dengan Arahan didayakan akses di sini, dalam kes ini kami akan menggunakan Claude 3 Haiku dan Sonnet
Kemudian buat ejen Bedrock dalam konsol AWS:
1) Pergi ke perkhidmatan Batuan Dasar
2) Ejen
3) Buat ejen
4) Beri nama ejen, dalam kes kami "Jeda-Ejen-Kopi
5) Penerangan adalah pilihan.
6) Salah satu langkah yang paling penting ialah memilih model asas yang akan menjadikan ejen kami berfungsi dengan betul. Jika anda ingin mengetahui cara memilih model terbaik yang sesuai dengan kes penggunaan anda, berikut ialah panduan mengenai perkhidmatan Amazon Bedrock Penilaian .
7) Langkah seterusnya ialah gesaan yang akan membimbing model anda, di sini anda perlu setepat mungkin dan menunjukkan kemahiran anda sebagai jurutera segera, jika anda tidak tahu di mana untuk bermula, saya cadangkan melawati panduan ini di mana anda akan menemui garis panduan terbaik untuk model yang anda gunakan, dan satu lagi sumber yang sangat berguna ialah konsol antropik.
Ini ialah gesaan yang saya gunakan untuk ejen contoh, saya syorkan menulis gesaan dalam bahasa Inggeris memandangkan model tersebut dilatih dalam bahasa Inggeris dan kadangkala menulis dalam bahasa sumber latihan membantu mengelakkan tingkah laku yang salah.
def call_multimodal(file,caption,modelId="anthropic.claude-3-haiku-20240307-v1:0"): #esta funcion es para llamar a un modelo multimodal con una imagen y un texto config = { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 4096, "messages": [ { "role": "user", "content": [ { "type": "image", "source": { "type": "base64", "media_type": read_mime_type(file), "data": base64.b64encode(open(file, "rb").read()).decode("utf-8") } }, { "type": "text", "text": caption }] } ] } body = json.dumps(config) modelId = modelId accept = "application/json" contentType = "application/json" response = client.invoke_model( body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get("body").read()) results = response_body.get("content")[0].get("text") return results
8) Konfigurasi tambahan, anda mesti membenarkan ejen menangkap input daripada pengguna, memandangkan mereka pasti akan kekurangan maklumat untuk memproses pesanan, contohnya: Mereka perlu meminta produk yang pelanggan inginkan, nama , antara lain.
9) Kumpulan Tindakan: Kumpulan tindakan mentakrifkan tindakan di mana ejen boleh membantu pengguna. Sebagai contoh, anda boleh menentukan kumpulan tindakan yang menyatakan TakeOrder yang boleh mempunyai tindakan berikut
- Senaraikan produk
- Proses Pesanan
Untuk membuat kumpulan tindakan yang anda perlukan untuk setiap tindakan:
- Nama
- Parameter
Kumpulan tindakan untuk dijalankan biasanya menggunakan fungsi Lambda, daripada Bedrock anda boleh:
- Buat fungsi lambda daripada konsol Bedrock (Pilih Ciptaan pantas fungsi lambda)
- Pilih fungsi lambda yang telah dibuat di sini arahan tentang acara tersebut dan tindak balas yang dijangkakan untuk setiap kumpulan tindakan
Jika anda memilih untuk mencipta fungsi lambda daripada konsol Bedrock, fungsi akan dibuat dalam python dengan kod sumber asas yang kemudiannya anda perlu ubah suai, dalam repo ini dalam file agents/action_group/lambda.py anda mempunyai kod contoh yang diubah suai untuk menjadikannya berfungsi dengan ejen.
Ini adalah pembolehubah yang akan memberi anda maklumat yang diperlukan:
- fungsi: ialah nama tindakan yang digunakan, dalam kes contoh, ia boleh menjadi: get_products (untuk menyenaraikan produk) dan place_order (untuk menjana pesanan dalam Shopify)
- parameter: ialah kamus parameter.
Dalam contoh berikut, anda boleh melihat bahawa terdapat dua tindakan:
- get_products yang tidak memerlukan sebarang parameter
- pesanan_tempat yang mempunyai 3 parameter:
Parametro | Descripcion | Tipo | Obligatorio |
---|---|---|---|
customerEmail | Email of the customer | string | False |
customerName | Name of the customer | string | True |
products | SKUs and quantities to add to the cart in the format [{ variantId: variantId, quantity: QUANTITY }] | array | True |
Jadi sebagai contoh apabila anda memanggil fungsi get_products dalam fungsi lambda ia dikendalikan seperti ini:
Terdapat fungsi get_products yang ditakrifkan yang akan bertanggungjawab untuk menanyakan Shopify API (Untuk tujuan pendidikan kami memulangkan semua produk)
Jika anda mahu ini berfungsi dalam Shopify, anda mesti menggantikan pembolehubah berikut dengan pembolehubah kedai anda:
pip install -r requirements.txt
#Cambiar la region y el perfil de AWS aws = boto3.session.Session(profile_name='genaiday', region_name=region) client = aws.client('bedrock-runtime')
Kemudian dalam pengendali fungsi lambda, nama fungsi yang dipanggil disahkan dan respons dikembalikan dalam format yang diperlukan oleh kumpulan_tindakan:
{ "role": "user", "content": [{ "type": "text", "text": prompt }] }
Coretan kod di atas adalah sebahagian daripada fungsi lambda yang terdapat di sini
10) Tekan Simpan dan Keluar, dan itu sahaja ejen sedia untuk diuji.
Ejen sedang beraksi
Perkara seterusnya adalah untuk menguji ejen dan mengesahkan bahawa ia berfungsi, dari Bedrock anda boleh menguji ejen, dan jika semasa perbualan anda mengklik "Lihat jejak atau Tunjukkan Jejak", ia akan menunjukkan kepada anda proses penaakulan, di sinilah anda harus Beri perhatian khusus dan buat pelarasan yang anda fikir perlu dalam gesaan atau cari model lain jika anda melihat model yang anda pilih tidak berfungsi seperti yang anda jangkakan.
Setelah anda berpuas hati dengan ejen tersebut, anda boleh mencipta Alias, alias ialah ID yang melaluinya anda akan dapat memanggil ejen daripada Amazon Bedrock API, apabila anda mencipta alias, ia akan mencipta versi ejen secara automatik, atau anda boleh menunjuk ke versi yang sedia ada, mempunyai alias berbeza dan versi berbeza akan membantu anda mengawal proses penggunaan ejen, contohnya:
- Anda boleh mempunyai alias "pembangunan" yang akan pergi ke ujian Ejen terkini
- Alyas "preprod" yang akan menjadi ejen dalam mod pra-pengeluaran
- Alyas "prod" dan ini ialah ejen langsung.
Kemudian yang tinggal hanyalah menulis alias pengeluaran yang sepadan dengan versi yang anda mahu siaran langsung.
Cara untuk memanggil ejen
Untuk ini, dalam folder ejen/depan saya telah meninggalkan fail bernama agent.py.
Pembangunan ini menggunakan Streamlit, rangka kerja yang berkuasa untuk membuat contoh aplikasi pembelajaran mesin
Bahagian kod yang memanggil ejen ialah yang berikut:
def call_text(prompt,modelId="anthropic.claude-3-haiku-20240307-v1:0"): #esta función es para llamar un modelo de texto config = { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 4096, "messages": [ { "role": "user", "content": [{ "type": "text", "text": prompt }] } ] } body = json.dumps(config) modelId = modelId accept = "application/json" contentType = "application/json" response = client.invoke_model( body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get("body").read()) results = response_body.get("content")[0].get("text") return results
Kami menggunakan boto3 untuk menggunakan API AWS, kami memanggil pelanggan jangka masa ejen batuan asas untuk dapat memanggil ejen.
Parameter yang perlu kami berikan kepadanya ialah:
- ejenId
- agentAliasId
- inputTeks (gesaan)
- sessionId (sesi, untuk mengenal pasti perbualan)
Dalam contoh ini, saya mentakrifkan pembolehubah di sini:
print("Haiku") print(call_text("Estoy buscando armar un local de café al paso, dame 5 nombres para un local.")
Kemudahan:
Mula-mula anda mesti mendayakan akses kepada model dalam Arahan Batuan Dasar di sini
Keperluan:
- Arahan AWS CLI di sini
- Python 3.11 atau lebih tinggi
Saya syorkan mencipta Arahan persekitaran Python maya di sini
pip install -r requirements.txt
Perlaksanaan
#Cambiar la region y el perfil de AWS aws = boto3.session.Session(profile_name='genaiday', region_name=region) client = aws.client('bedrock-runtime')
Ini akan mula menjalankan streamlit pada port 8501 dan anda boleh melawati URL berikut: http://localhost:8501/ untuk melihat bahagian hadapan yang akan memanggil ejen
Kesimpulan
Jika anda telah mengikuti semua langkah yang anda ada:
- Menggunakan Amazon Bedrock API dari Bedrock Playground dan dari Python
- Anda telah menggunakan teks asas dan model berbilang mod
- Anda telah mencipta ejen dari awal yang menggunakan API Shopify
Beberapa pautan untuk anda mengikuti laluan anda dalam GenerativeAI
AI generatif AWS Bengkel
Pangkalan Pengetahuan Batuan Dasar
Anthropic Console (Untuk nyahpepijat gesaan kami)
Community.aws (lebih banyak artikel yang dihasilkan oleh dan untuk komuniti)
Atas ialah kandungan terperinci Mencipta Ejen Kedai Kopi dengan Amazon Bedrock dan Shopify. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Memuatkan Fail Pickle di Python 3.6 Kesalahan Laporan Alam Sekitar: ModulenotFoundError: Nomodulenamed ...

Bagaimana untuk menyelesaikan masalah segmentasi kata Jieba dalam analisis komen tempat yang indah? Semasa kami mengadakan komen dan analisis tempat yang indah, kami sering menggunakan alat segmentasi perkataan jieba untuk memproses teks ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Dreamweaver CS6
Alat pembangunan web visual

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini