Halo para seniman
yang budiman! Kita kembali pada bagian kedua dari seri artikel tentang Artificial Intelligence (AI)
menggunakan Ollama
dan OpenWebUI
. Pada bagian sebelumnya, kita telah membahas bagaimana proses intalasi dan menggunakan Ollama
dan OpenWebUI
. Sekarang, kita akan mengarahkan perhatian kita pada pengiriman request ke Artificial Intelligence (AI)
menggunakan API. Mari kita lanjutkan dengan langkah-langkah yang perlu dilakukan untuk menggunakan API dengan bantuan aplikasi seperti insomnia
, postman
atau terminal
.
Menggunakan API Ollama untuk Generasi Teks dan Gambar #
API Ollama
menawarkan kemampuan canggih untuk menghasilkan teks dan menginterpretasi gambar dengan model Artificial Intelligence (AI)
seperti Llama3
dan Llava
. Berikut adalah panduan tentang bagaimana memanfaatkan endpoint-endpoint dari API Ollama
untuk berbagai kebutuhan generasi teks dan gambar.
URL dan Endpoint Penting #
Documentasi: Ollama API
- Open Web UI:
http://localhost:8080/ollama/api/generate
- API Endpoint:
http://localhost:11434/api/generate
Contoh #
- Request API
Methode
: POSTAuth
: Bearer{Token}
Headers
: Content-Type: application/jsonBody
: Raw / JSON{ "model": "gemma:2b", "prompt": "Siapa kamu?", "stream": false }
- Response API Respons akhir dalam aliran ini juga mencakup data tambahan tentang pembuatannya:
total_duration
: waktu yang dihabiskan untuk menghasilkan respons.load_duration
: waktu yang dihabiskan dalam nanodetik untuk memuat model.prompt_eval_count
: jumlah token yang diminta.prompt_eval_duration
: waktu yang dihabiskan dalam nanodetik untuk mengevaluasi prompt.eval_count
: jumlah token dalam respons.eval_duration
: waktu dalam nanodetik yang dihabiskan untuk menghasilkan respons.context
: pengkodean percakapan yang digunakan dalam respons ini, ini dapat dikirim dalam permintaan berikutnya untuk menyimpan memori percakapan.response
: kosong jika respons dialirkan, jika tidak dialirkan, ini akan berisi respons lengkap.
Format Permintaan #
1. Generasi Teks Sederhana #
Untuk menghasilkan teks dengan model Llama3
, Anda bisa menggunakan permintaan berikut:
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "Why is the sky blue?",
"stream": false
}'
Parameter:
model
: Nama model yang digunakan, dalam hal inillama3
.prompt
: Pertanyaan atau teks awal yang diberikan untuk menghasilkan respons.stream
: Mengatur apakah respons dikembalikan dalam aliran data atau sekali balasan. Setel kefalse
untuk respons sekali balasan.
2. Format JSON #
Jika Anda membutuhkan respons dalam format JSON, gunakan parameter format
:
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "What color is the sky at different times of the day? Respond using JSON",
"format": "json",
"stream": false
}'
Parameter tambahan:
format
: Menentukan format keluaran, dalam hal ini “json”.
3. Generasi Gambar #
Untuk mengirimkan gambar ke model multimodal seperti Llava atau Bakllava, gunakan format base64
untuk mengkodekan gambar:
curl http://localhost:11434/api/generate -d '{
"model": "llava",
"prompt":"What is in this picture?",
"stream": false,
"images": ["IMAGE FORMAT BASE64"]
}'
Parameter:
images
: Daftar gambar yang dikodekan dalam formatbase64
.
Endpoint Obrolan (Chat) #
1. Obrolan Tanpa Streaming #
Menghasilkan balasan obrolan sederhana:
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{
"role": "user",
"content": "why is the sky blue?"
}
],
"stream": false
}'
Pesan harus mengikuti format:
role
: Peran pesan (sistem, pengguna, atau asisten).content
: Isi pesan.
2. Obrolan dengan Riwayat #
Untuk memulai percakapan dengan konteks sebelumnya, sertakan riwayat pesan:
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{
"role": "user",
"content": "why is the sky blue?"
},
{
"role": "assistant",
"content": "due to rayleigh scattering."
},
{
"role": "user",
"content": "how is that different than mie scattering?"
}
]
}'
3. Obrolan dengan Gambar #
Mengirim pesan obrolan yang menyertakan gambar:
curl http://localhost:11434/api/chat -d '{
"model": "llava",
"messages": [
{
"role": "user",
"content": "what is in this image?",
"images": ["Gambar dengan format base64"]
}
]
}'
4. Parameter Lanjutan #
Anda dapat menyertakan parameter lanjutan seperti options
untuk mengontrol perilaku model:
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"options": {
"seed": 101,
"temperature": 0
}
}'
Parameter options
:
seed
: Seed untuk memastikan determinisme hasil.temperature
: Mengontrol variasi respons model, nilai lebih rendah menghasilkan respons yang lebih deterministik.
Kesimpulan #
API Ollama menyediakan berbagai fitur untuk generasi teks dan interpretasi gambar yang kuat. Dengan memahami cara menggunakan endpoint dan parameter yang tersedia, Anda dapat memanfaatkan potensi penuh dari model AI
yang disediakan. Pastikan untuk mengkodekan gambar dalam format base64
jika menggunakan model multimodal, dan manfaatkan parameter lanjutan untuk mengontrol hasil yang lebih presisi sesuai kebutuhan Anda.