İçeriğe geç

Perceptron Mk1.5 ve Mk1

Perceptron modelleri görsel kanıt üzerinden cevap veren vision-language modelleridir. Mk1.5 video, görsel ve sesi birlikte anlar; bir olayın videonun hangi aralığında geçtiğini söyleyebilir, nesneleri koordinatla işaretleyebilir ve video boyunca takip edebilir. Mk1 önceki nesildir; görsel ve video kabul eder, ses ve araç çağrısı desteklemez. İkisi de /v1/chat/completions üzerinden çağrılır.

Model Bağlam Giriş / Çıkış ($/1M)
perceptron/perceptron-mk1.5 36.864 0,15 / 1,50
perceptron/perceptron-mk1 32.768 0,15 / 1,50

Her iki modelde tek yanıt en fazla 8.192 tokendir; daha büyük bir max_tokens isteği 400 ile reddedilir.

Terminal window
curl "$LLMTR_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "perceptron/perceptron-mk1.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "video_url", "video_url": { "url": "https://example.com/mac.mp4" } },
{ "type": "text", "text": "Bu videoda sırasıyla ne oluyor?" }
]
}
],
"max_tokens": 500
}'

Videoyu video_url parçasıyla gönderin. Adres https:// ile başlayan herkese açık bir URL ya da base64 data URL (data:video/mp4;base64,...) olabilir. Büyük dosyaları base64 yerine https adresiyle gönderin.

Model videonun tamamından örnek kareler alır; kayıt uzadıkça kareler seyrekleşir ve kısa bir olay kaçabilir. Video, 36.864 tokenlik bağlam penceresinin büyük kısmını doldurabilir. Uzun kayıtların yalnızca ilgili bölümünü gönderin ve gerçek kullanımı yanıttaki usage.prompt_tokens alanından izleyin.

Bir olayın ne zaman gerçekleştiğini sormak için vision_config.annotation_format değerini "clip" yapın:

{
"model": "perceptron/perceptron-mk1.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "video_url", "video_url": { "url": "https://example.com/sorf.mp4" } },
{ "type": "text", "text": "Sörfçünün dalgaya bindiği aralıkları bul." }
]
}
],
"vision_config": { "annotation_format": "clip" }
}

Aralıklar yanıt metninin içinde işaretleme olarak döner:

<clip mention="the surfer is riding a wave" t="0 seconds 7.9 seconds" />

t tek bir an ("3.2 seconds") ya da başlangıç ve bitiş ("1.0 seconds 3.2 seconds") taşıyabilir.

Mk1.5 varsayılan olarak yalnızca görüntüyü işler. Konuşmayı veya sesleri de değerlendirmesi için vision_config.enable_audio_in_video alanını true gönderin:

"vision_config": { "enable_audio_in_video": true }

Ses kanalı dakikada yaklaşık 750 token ekler. Bu tokenlar usage.prompt_tokens içinde sayılır ve giriş fiyatından ücretlendirilir. Mk1 videonun sesini işlemez; enable_audio_in_video: true Mk1'de 400 döner.

Videoyu kendiniz karelere ayırıyorsanız kareleri zaman damgalarıyla tek bir video olarak gönderebilirsiniz (yalnızca Mk1.5):

{
"type": "video_frames",
"video_frames": {
"frames": [
{ "image_url": { "url": "https://example.com/kare-000.jpg" }, "timestamp_ms": 0 },
{ "image_url": { "url": "https://example.com/kare-001.jpg" }, "timestamp_ms": 500 },
{ "image_url": { "url": "https://example.com/kare-002.jpg" }, "timestamp_ms": 1000 }
]
}
}
  • Bir grup en az 2 kare içerir. Bir istek, önceki mesajlar dahil en fazla 256 medya taşıyabilir; her kare ile her görsel, video ve ses kaydı birer tane sayılır.
  • timestamp_ms değerleri azalmamalıdır.
  • Her kare adresi image_url ile aynı kurallara uyar: herkese açık https adresi ya da data:image/... base64.
  • Kare grubunun ses kanalı yoktur.

Az kare kısa bir olayı kaçırabilir, çok kare maliyeti artırır.

Görseli image_url parçasıyla gönderin. Nesnelerin yerini istemek için vision_config.annotation_format alanına "point", "box" veya "polygon" verin ve istemde neyi işaretleyeceğini söyleyin:

{
"model": "perceptron/perceptron-mk1.5",
"messages": [
{
"role": "user",
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/raf.jpg" } },
{ "type": "text", "text": "Raftaki kutuları kutu içine al." }
]
}
],
"vision_config": { "annotation_format": "box" }
}

İşaretlemeler yanıt metninin içinde döner. Koordinatlar görselin boyutundan bağımsız olarak 0 ile 1000 arasına ölçeklenmiştir:

<point mention="button center"> (120,200) </point>
<point_box mention="package"> (100,150) (300,350) </point_box>
<polygon mention="surface"> (20,40) (60,40) (60,80) (20,80) </polygon>

Bir nesneyi video boyunca takip ettirmek için annotation_format değerini "box" yapın ve istemde takip isteyin. Yanıt, zaman damgalı kutular içeren bir <track> işaretlemesi olarak gelebilir; ara noktalar seyrek olabilir, her kare için kutu garanti edilmez.

Mk1.5 ses kaydını tek başına da kabul eder. İki biçimden birini kullanın:

{ "type": "input_audio", "input_audio": { "data": "<base64>", "format": "wav" } }
{ "type": "audio_url", "audio_url": { "url": "https://example.com/kayit.mp3" } }
  • Desteklenen biçimler WAV, MP3 ve FLAC'tır. input_audio.format için wav, mp3 veya flac verin; audio_url data URL'lerinde audio/wav, audio/mpeg veya audio/flac kullanın.
  • Ses dakikada yaklaşık 750 token tutar ve kayıt başına sınır 16.384 ses tokenidir (yaklaşık 21 dakika). Daha uzun kayıtları bölerek gönderin.

Mk1 ses kabul etmez.

Mk1.5 siz istemedikçe düşünmeden yanıt verir. Düşünmeyi reasoning_effort alanıyla açarsınız; geçerli değerler none, minimal, low, medium ve high'dır. xhigh ve max bu modelde 400 döner.

perceptron/perceptron-mk1.5 -> düşünmeden
perceptron/perceptron-mk1.5:low -> düşük efor
perceptron/perceptron-mk1.5:high -> yüksek efor

Reasoning tokenları completion_tokens içinde sayılır ve çıkış fiyatından ücretlendirilir; aynı zamanda max_tokens bütçesini de tüketir. Yüksek efor kullanırken max_tokens değerini beklediğiniz yanıttan belirgin şekilde yüksek tutun. Genel davranış için reasoning effort sayfasına bakın.

Mk1'de düşünme seviyeyle değil, açık/kapalı olarak yönetilir: :think / :fast suffix'i ya da "reasoning": true / false.

Mk1.5 fonksiyon çağrısını destekler. tool_choice için yalnızca "auto" (varsayılan) ve "none" kullanılabilir; "required" veya isimli fonksiyon seçimi 400 döner. Modelin bir turda fonksiyon çağırmaması gerekiyorsa o istekte tools göndermeyin.

Terminal window
curl "$LLMTR_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "perceptron/perceptron-mk1.5",
"messages": [{ "role": "user", "content": "Ankara hava durumu nedir?" }],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Bir şehrin güncel hava durumunu getirir",
"parameters": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}
}
]
}'

Mk1 araç çağrısını desteklemez; tools içeren istek 400 döner.

Mk1.5 iki yolla kısıtlı çıktı üretir:

  • response_format ile json_schema: yanıt verdiğiniz şemaya uyan JSON olur.
  • Üst seviye regex alanı: yanıt ifadeye uyan metin olur, örneğin "regex": "[0-9]{4}".

response_format: { "type": "json_object" } desteklenmez ve 400 döner; bunun yerine bir json_schema verin. tools ile json_schema ya da regex aynı istekte kullanılamaz: önce araç döngüsünü bitirin, kısıtlı son cevabı tools içermeyen ayrı bir istekle alın.

  • n yalnızca 1 olabilir.
  • LLMTR'ye yüklenmiş dosyalar (input_file) bu modellere gönderilemez. Görseli image_url, videoyu video_url, sesi input_audio veya audio_url ile gönderin.
  • Akışta kullanım bilgisi için stream_options: { "include_usage": true } gönderin; son parça o zaman usage taşır.