Di blog ini, kami akan membina aplikasi penjelasan kod berbilang bahasa untuk mempamerkan keupayaan Llama 3.3, terutamanya kekuatannya dalam penalaran, arahan berikut, pengekodan, dan sokongan berbilang bahasa.
Aplikasi ini akan membolehkan pengguna:
Menyediakan llama 3.3
mengakses llama 3.3 pada muka pelukan
mkdir multilingual-code-explanation cd multilingual-code-explanation
python3 -m venv venv source venv/bin/activate’
pip install streamlit requests transformers huggingface-hub
Sekarang persediaan selesai, kami sudah bersedia untuk membina aplikasi! Di bahagian seterusnya, kami akan mula mengodkan aplikasi Penjelasan Kod Multi -Langkah demi langkah.
backend berkomunikasi dengan API muka pelukan untuk menghantar coretan kod dan menerima penjelasan.
Pertama, kita perlu mengimport Perpustakaan Permintaan. Perpustakaan ini membolehkan kami menghantar permintaan HTTP ke API. Di bahagian atas fail app.py anda, tulis:
mkdir multilingual-code-explanation cd multilingual-code-explanation
untuk berinteraksi dengan Llama 3.3 API yang dihoskan pada muka yang memeluk, anda perlukan:
python3 -m venv venv source venv/bin/activate’
dalam kod di atas:
Sekarang, kami akan menulis fungsi untuk menghantar permintaan kepada API. Fungsi ini akan:
pip install streamlit requests transformers huggingface-hub
Prompt memberitahu Llama 3.3 untuk menerangkan coretan kod dalam bahasa yang dikehendaki.
Penafian: Saya bereksperimen dengan arahan yang berbeza untuk mencari yang menghasilkan output terbaik, jadi pasti ada unsur kejuruteraan segera yang terlibat!
Seterusnya, muatan ditakrifkan. Untuk input, kami menyatakan bahawa prompt dihantar ke model. Dalam parameter, max_new_tokens mengawal panjang tindak balas, manakala suhu menyesuaikan tahap kreativiti output.
Fungsi Requests.Post () menghantar data untuk memeluk muka. Jika tindak balas berjaya (status_code == 200), teks yang dihasilkan diekstrak. Sekiranya terdapat kesilapan, mesej deskriptif dikembalikan.
Akhirnya, terdapat langkah -langkah untuk membersihkan dan memformat output dengan betul. Ini memastikan ia dibentangkan dengan kemas, yang meningkatkan pengalaman pengguna dengan ketara.
Frontend adalah di mana pengguna akan berinteraksi dengan aplikasinya. StreamLit adalah perpustakaan yang mewujudkan aplikasi web interaktif dengan hanya kod Python dan menjadikan proses ini mudah dan intuitif. Inilah yang akan kami gunakan untuk membina bahagian depan aplikasi kami. Saya sangat suka Streamlit untuk membina demo dan poc!
di bahagian atas fail app.py anda, tambahkan:
mkdir multilingual-code-explanation cd multilingual-code-explanation
kami akan menggunakan set_page_config () untuk menentukan tajuk aplikasi dan susun atur. Dalam kod di bawah:
python3 -m venv venv source venv/bin/activate’
Untuk membantu pengguna memahami cara menggunakan aplikasinya, kami akan menambah arahan ke bar sisi: dalam kod di bawah:
pip install streamlit requests transformers huggingface-hub
Kami akan menambah tajuk utama dan sarikata ke halaman:
import requests
Sekarang, untuk membiarkan pengguna menampal kod dan memilih bahasa pilihan mereka, kita memerlukan medan input. Kerana teks kod mungkin lebih panjang daripada nama bahasa, kami memilih kawasan teks untuk kod dan input teks untuk bahasa:
HUGGINGFACE_API_KEY = "hf_your_api_key_here" # Replace with your actual API key API_URL = "https://api-inference.huggingface.co/models/meta-llama/Llama-3.3-70B-Instruct" HEADERS = {"Authorization": f"Bearer {HUGGINGFACE_API_KEY}"}
Kami kini menambah butang untuk menghasilkan penjelasan. Jika pengguna memasuki kod dan bahasa dan kemudian klik butang Penjelasan Menjana, maka jawapannya dihasilkan.
def query_llama3(input_text, language): # Create the prompt prompt = ( f"Provide a simple explanation of this code in {language}:\n\n{input_text}\n" f"Only output the explanation and nothing else. Make sure that the output is written in {language} and only in {language}" ) # Payload for the API payload = { "inputs": prompt, "parameters": {"max_new_tokens": 500, "temperature": 0.3}, } # Make the API request response = requests.post(API_URL, headers=HEADERS, json=payload) if response.status_code == 200: result = response.json() # Extract the response text full_response = result[0]["generated_text"] if isinstance(result, list) else result.get("generated_text", "") # Clean up: Remove the prompt itself from the response clean_response = full_response.replace(prompt, "").strip() # Further clean any leading colons or formatting if ":" in clean_response: clean_response = clean_response.split(":", 1)[-1].strip() return clean_response or "No explanation available." else: return f"Error: {response.status_code} - {response.text}"
Apabila butang diklik, aplikasi:
Untuk membungkus, mari tambahkan footer:
import streamlit as st
sudah tiba masanya untuk menjalankan aplikasi! Untuk melancarkan aplikasi anda, jalankan kod ini di terminal:
st.set_page_config(page_title="Multilingual Code Explanation Assistant", layout="wide")
aplikasi akan dibuka di penyemak imbas anda, dan anda boleh mula bermain dengannya!
ujian 1: fungsi faktorial dalam python
st.sidebar.title("How to Use the App") st.sidebar.markdown(""" 1. Paste your code snippet into the input box. 2. Enter the language you want the explanation in (e.g., English, Spanish, French). 3. Click 'Generate Explanation' to see the results. """) st.sidebar.divider() st.sidebar.markdown( """ <div > Made with ♡ by Ana </div> """, unsafe_allow_html=True )
Sebagai penceramah Sepanyol, saya dapat mengesahkan bahawa penjelasan dengan betul mengenal pasti bahawa kod itu mengira faktorial nombor menggunakan rekursi. Ia berjalan melalui bagaimana rekursi berfungsi dengan langkah demi langkah, memecahkannya ke dalam istilah mudah.
Model ini menerangkan proses rekursi dan menunjukkan bagaimana fungsi itu memanggilnya dengan nilai penurunan n sehingga mencapai 0.
Penjelasannya sepenuhnya dalam bahasa Sepanyol, seperti yang diminta, menunjukkan keupayaan berbilang bahasa Llama 3.3.
Penggunaan frasa mudah menjadikan konsep rekursi mudah diikuti, walaupun bagi pembaca yang tidak dikenali dengan pengaturcaraan.
Ia meringkaskan dan menyebut bagaimana rekursi berfungsi untuk input lain seperti 3 dan kepentingan rekursi sebagai konsep penyelesaian masalah yang cekap dalam pengaturcaraan.
Ujian pertama ini menyoroti kuasa Llama 3.3:
ia menerangkan dengan tepat kod dengan cara demi langkah.
ujian 2: fungsi faktorial dalam javascript
Kami menggunakan coretan kod JavaScript berikut di mana saya sengaja memilih pembolehubah samar -samar untuk melihat sejauh mana model mengendalikan ini:
Coretan kod ini mentakrifkan fungsi rekursif x (a) yang mengira faktorial nombor tertentu a. Keadaan asas memeriksa jika a === 1. Jika ya, ia kembali 1. Jika tidak, fungsi itu memanggilnya dengan A - 1 dan mengadili hasilnya dengan a. Y tetap ditetapkan kepada 6, jadi fungsi x mengira 6 × 5 × 4 × 3 × 2 × 1. Fnally, hasilnya disimpan dalam pembolehubah z dan dipaparkan menggunakan Console.log. Berikut adalah output dan terjemahan dalam bahasa Inggeris:
mkdir multilingual-code-explanation cd multilingual-code-explanation
Nota: Anda dapat melihat bahawa ia kelihatan seperti respons tiba -tiba dipotong tetapi kerana kita telah mengehadkan output kepada 500 token!
Selepas menterjemahkannya, saya menyimpulkan bahawa penjelasan dengan betul mengenal pasti bahawa fungsi x (a) adalah rekursif. Ia memecahkan bagaimana rekursi berfungsi, menerangkan kes asas (a === 1) dan kes rekursif (a * x (a - 1)). Penjelasan secara eksplisit menunjukkan bagaimana fungsi mengira faktorial 6 dan menyebut peranan y (nilai input) dan z (hasilnya). Ia juga mencatatkan bagaimana konsol.log digunakan untuk memaparkan hasilnya.
Penjelasan sepenuhnya dalam bahasa Perancis, seperti yang diminta. Istilah teknikal seperti "récursive" (rekursif), "factorielle" (factorial), dan "produit" (produk) digunakan dengan betul. Dan bukan hanya itu, ia mengenal pasti bahawa kod ini mengira faktorial nombor secara rekursif.
Penjelasan mengelakkan jargon terlalu teknikal dan memudahkan rekursi, menjadikannya mudah diakses oleh pembaca yang baru untuk pengaturcaraan.
Ujian ini menunjukkan bahawa llama 3.3:
Sekarang kami telah menguji aplikasinya dengan Python dan JavaScript, mari kita teruskan untuk mengujinya dengan pertanyaan SQL untuk menilai keupayaan berbilang bahasa dan penalarannya.
ujian 3: pertanyaan SQL dalam bahasa Jerman
mkdir multilingual-code-explanation cd multilingual-code-explanation
Setelah memukul butang penjelasan menjana, inilah yang kita dapat:
Penjelasan yang dihasilkan adalah ringkas, tepat, dan berstruktur dengan baik. Setiap klausa SQL utama (pilih, dari, menyertai, di mana, kumpulan oleh, mempunyai, dan memerintahkan) jelas dijelaskan. Juga, penerangan sepadan dengan urutan pelaksanaan dalam SQL, yang membantu pembaca mengikuti langkah logik pertanyaan demi langkah.
Penjelasan sepenuhnya dalam bahasa Jerman, seperti yang diminta.
istilah SQL utama (mis., "Filtert", "Gruppiert", "Sortiert") digunakan dengan tepat dalam konteks. Penjelasan mengenal pasti bahawa mempunyai digunakan untuk menapis hasil yang dikelompokkan, yang merupakan sumber kekeliruan yang sama untuk pemula. Ia juga menerangkan penggunaan alias (AS) untuk menamakan semula jadual dan lajur untuk kejelasan.
Penjelasan mengelakkan istilah yang terlalu kompleks dan memberi tumpuan kepada fungsi setiap klausa. Ini memudahkan pemula untuk memahami bagaimana pertanyaan berfungsi.
Ujian ini menunjukkan bahawa llama 3.3:
Kami telah menguji aplikasi dengan coretan kod di Python, JavaScript, dan SQL, menghasilkan penjelasan dalam bahasa Sepanyol, Perancis, dan Jerman. Dalam setiap ujian:
Dengan ujian ini, kami telah mengesahkan bahawa aplikasi yang telah kami bina adalah serba boleh, boleh dipercayai, dan berkesan untuk menjelaskan kod di seluruh bahasa pengaturcaraan yang berbeza dan bahasa semulajadi.
KesimpulanDalam tutorial ini, anda belajar:
Atas ialah kandungan terperinci Llama 3.3: Tutorial langkah demi langkah dengan projek demo. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!