
Tue Aug 11 2026

Needle2, çevik ve küçük ölçekte yapay zeka demek. Küçük mobil veya IoT cihazlarında çalışacak şekilde tasarlanmış bir araç seti:
# Needle2 ile grafiksel bir modeli cihazına indirmeyi hayal et
import needle2 as n2
# 1️⃣ Eğitilmiş bir modeli indir (örneğin 10 MB'lık bir görüntü tanımlama ağı)
model = n2.load_model("resnet18_quantized.onnx")
# 2️⃣ Modeli optimize et ve cihaz belleğine uyarlamak için optimize et
optimized = n2.optimize(model, target_memory_mb=2)
# 3️⃣ Modeli mobil cihaz için derle
mobile_blob = n2.compile(optimized, platform="mobile")
# 4️⃣ Şimdi mobil uygulamanda şu şekilde çağırabilirsin:
result = mobile_blob.predict(image_bytes)
Ne oluyor burada?
Needle2, ResNet-50 veya BERT gibi ağları bile bir Raspberry Pi Zero veya akıllı telefonun 512 MB belleğinde çalıştırabilir:
Özet: Needle2, büyük Edge yapay zeka modellerini ceplerimize ve nesnelerimize sığdırabilen bir teknolojiye dönüştürüyor – gecikme, gizlilik ve enerji sorunlarını çözüyor.
Eğer hazırsan, bir sonraki bölümde Needle2 ile kendi mobil Edge modelini nasıl oluşturacağını öğreneceğiz! 🚀
Hadi pratik bir örnek üzerinden anlayalım – bu mini model, dev bir ajan gibi davranabiliyor. 🎯
Çekirdek LLM
nn.Linear katmanları.Bellek Bankası 🗂️
short_term (volatile, GPU RAM'de tutulur).long_term (diskte kompakt tikler halinde saklanır).embed → retrieve yardımcıları ile yapılır.Eylem Planlayıcı 🧭
Araç Entegratörü 🛠
search, calc, act) arayüz sağlar.tool_registry sözlüğünden alınır.Bağlam Yönlendirici 🔀
uint8 (0-255) aralığına düşürerek bellek kullanımını ~4 kat azalttık.torch.cpu() kullanılır; düşük güç tüketimi.int8 ve in-place işlemlerle çalışır.import needle2 as nd
# 1️⃣ Modeli indir (sadece bir kez)
model = nd.load_model("needle2-agentic-14m")
# 2️⃣ Cihaz seçimi (CPU, CUDA, Apple GPU, vb.)
device = nd.select_device() # otomatik olarak en uygun cihazı seçer
model.to(device)
# 3️⃣ Basit bir görevi başlat
prompt = "Yarın için 3 adet hava durumu tahmini al"
result = nd.run_agent(prompt, model)
print(result)
Bu sayede ne oluyor? Kod, modelin belleği, cihaza uyum özelliğini ve temel agentic döngüyü (planla → araçla → etki et) yöneten basit bir API'sini özetliyor. 🚀
Böylece Needle2, geniş bir potansiyel çerçeve olmadan gerçekten ajanik davranabilir. 🎯
Hadi pratik bir örnek üzerinden anlayalım. 🎯 İster akıllı telefon ister küçük bir sensör cihazı olsun, temel soru aynı: hangi model bizim için en iyisi?
Small2, kompakt ağı ile bilinen bir model. Aynı zaman içinde:
Gelişmiş Özellikler (örneğin, dikkat mekanizmaları, dil profili) veri kalitesini artırır ancak cihaz kaynaklarını da tüketir.
Düşük Gecikme, anlık karar alma için temel.
Needle2, Small2’den çoklu kriterli bir değerlendirme süreci sunar ve kaynakların optimum şekilde dağılmasını sağlar.
# Örnek: Needle2 ile model seçimi
from needle2 import evaluate
def pick_model(features, latency_target=100, power_budget=500):
# Small2 değerlendirmesi
score_small2 = evaluate("Small2",
features=features,
latency_target=latency_target,
power_budget=power_budget)
# Gelişmiş özellikleri de deniyebiliriz
score_advanced = evaluate("AdvancedModel",
features=features,
latency_target=latency_target,
power_budget=power_budget)
# En iyi seçeneği seç
best = max(score_small2, score_advanced, key=lambda x: x["score"])
return best["model"]
Ne oluyor? 🛠️ Needle2, Small2’nin hızlı ve hafif kalmasını sağlarken, gerekirse gelişmiş özellikler eklemeye izin verir. Bu sayede kaynakların uygun şekilde dağılmasını sağlarız.
Açıklama: Needle2'yi kurup Docker ile test ortamını hazırladıktan sonra Android ve iOS uygulamalarına nasıl dağıtacağımızı adım adım göreceğiz. 🚀
Terminali aç ve Python ortamını kontrol et
python --version
pip --version
Needle2'yi Python ortamına yükle
pip install needle2
Ne oluyor burada? pip, Needle2 kütüphanesini yerel Python ortamına çeker ve hemen kullanmaya hazır hale getirir.
# 📦 Needle2 test ortamı imajını oluştur
FROM python:3.10-slim
# 🏷️ Proje etiketini ekle (gerekirse sürümü değiştirebilirsin)
ARG NEEDLE_VERSION=latest
LABEL com.example.needle.version=$NEEDLE_VERSION
# 📁 Uygulama dosyalarını kopyala
WORKDIR /app
COPY . /app
# 📦 Bağımlılıkları yükle
RUN pip install --no-cache-dir needle2
# 🌐 Uygulamanın dinleyeceği port
EXPOSE 8000
# 🚀 Uygulamayı başlat
CMD ["python", "-m", "needle2", "--host", "0.0.0.0", "--port", "8000"]
version: '3.8'
services:
needle2:
build: .
ports:
- "8000:8000"
volumes:
# Kayıp değişiklikleri container içinde tutmak için bağlantı noktası
- ./src:/app/src
environment:
- PLATFORM=android # İhtiyaç duyduğun platforma göre değiştir: android, ios
restart: unless-stopped
Nasıl çalışıyor?
Dockerfile, Needle2'yi içeren temiz bir Python ortamı oluşturur.docker‑compose.yaml ile imajı kolayca derleyip çalıştırabiliriz. Bu sayede mobil cihaz üzerinde test etmek için gereken ortam hazır olur.Gerçek cihaz bağla (USB ile ya da emülatörle).
ADB ile bağlan
adb devices
Çalıştırılabilir APK'yı oluştur
./gradlew assembleDebug
Uygulamayı cihazına yükle
adb install app/build/outputs/apk/debug/app-debug.apk
⚠️ Dikkat: Mobil cihazda Needle2'yi başlatırken doğru ağ izinlerine sahip olduğundan emin ol (örneğin, WIFI_STATE, ACCESS_WIFI_STATE).
Xcode Project'te hedefi aç.
Uygulamayı çalıştırılabilir uygulamaya derle
xcodebuild -project Needle2Demo.xcodeproj -scheme Needle2Demo -configuration Debug -archivePath build/Needle2Demo.xcarchive archive
Distribution archive oluştur
xcodebuild -exportArchive -archivePath build/Needle2Demo.xcarchive -exportPath build/Needle2Demo.ipa -exportOptionsPlist exportOptions.plist
TestFlight veya Ad Hoc ile dağıt (profile'leri ayarla).
🔑 Önemli: Mobil profil ve sertifika, Info.plist içindeki Needle2Platform anahtarını tanımalıdır.
pip install needle2Artık Needle2'yi hem masaüstünde hem de gerçek mobil cihazlarda sorunsuz bir şekilde çalıştırabilirsin. 🍾
# Needle2'yi yükle
pip install needle2
# Test ortamını oluştur ve çalıştır
docker-compose up --build
Bu komutlarla gemiyi çalıştırmaya hazırsın! 🚀
Hazırsan başlayalım 🚀
Needle2 ile her ajan, YAML tabanlı bir yapılandırma dosyası (agent_config.yaml) ile tanımlanır. Bu dosya üç temel parçayı içerir:
1️⃣ Görev Tanımları – Ajanın yapması gereken şeyler. Hangi API'yi çağıracağı, veriyi nasıl işleyeceği ve beklenen sonuçlar. 2️⃣ Bellek Tarayıcıları – Ajanın veri elde etmesi veya Bellek'e erişmesi için kullandığı araçlar. İnternet tarayıcıları (Playwright), vektör depolarları (FAISS) vb. 3️⃣ Hareketlilik Yönergeleri – Ajanın güvenli hareket etmesini ve yalnızca belirlenen kurallara göre hareket etmesini sağlayan politikalar (örneğin "yalnızca HTTPS sitelerine gitme", "bulunmazsa durma").
Büyük resmi görmek için kısa bir gözden geçirme:
Aşağıdaki agent_config.yaml, başlangıç noktası olarak kullanabileceğin basit bir Needle2 ajanıdır:
# agent_config.yaml
agent:
name: "sample_agent"
type: "orchestrator"
tasks:
- id: "t1"
name: "Veri Çekme"
description: "Hedef bir API'den JSON verisi al"
executor: "http_request"
params:
url: "https://jsonplaceholder.typicode.com/posts/1"
memory:
browsers:
- name: "web_browser"
type: "playwright"
config:
headless: true
viewport: "1280x720"
retrievers:
- name: "vector_store"
type: "faiss"
config:
dimension: 1536
mobility:
objectives:
- name: "Güvenli Tarama"
rule: "İzin verilen alanlar dışındaki sitelere gitme"
- name: "Otomatik Duraklama"
rule: "30 saniye boyunca etkinlik yoksa dur"
Ne oluyor burada?
type: orchestrator).t1) tanımlarız; Needle2 bunu http_request yardımcı aracılığıyla jsonplaceholder API'den veri çeker.Aşağıda, başlangıç ayarlarını ve adım adım işlemi gösteren basit bir Node.js (JS) örneğidir. Needle2 SDK'ın initialize() ve runTask() yöntemlerini kullanır.
// js - Needle2'yi bir uygulamada kullanmak
const { Needle2Agent } = require('needle2');
const agent = new Needle2Agent('agent_config.yaml');
(async () => {
// Yapılandırmayı yükleyin ve ajanı başlatın
await agent.initialize();
// Basit görev t1'i çalıştırın (veri çekme)
const result = await agent.runTask('t1');
console.log('Görev sonucu:', result);
})();
Nasıl çalışır?
Needle2Agent derler ve yapılandırma dosyasını yüklüyoruz.initialize() metodu, tarayıcıları başlatır, vektör depolarını yükler ve aracıları için ön hazırlığı yapar.runTask('t1') başlatıcı görev üzerinde yürütür ve basit bir console.log ile sonucu yazdırır.agent_config.yaml dosyasını açın ve tasks dizisini genişletin.http_request, fs_read, email_send vb.) kullanın veya kendi özel çalıştırıcınızı Needle2'ye ekleyin.browsers altına Playwright, Puppeteer veya custom bir tarayıcı ekleyin.Yaptığınız değişiklikleri kaydedin, ardından JS (veya diğer dillerdeki diğer Needle2 istemcileri) örneğini çalıştırın ve yeni ajanınız verileri çekmeye, veri depolamaya veya sizin için istediği görevi yapmaya başlasın.
✅ Bu şekilde, Needle2'nin esnek ve ayrıntılı yapılandırmasını uygulayabilirsiniz. Bunu güçlendirin, tarayıcı otomasyonlarını genişletin veya özel görev çalıştırıcıları ekleyin ve ajanınız, modern bir yazılım mühendisinin istediği hemen her görevi yerine getirecek şekilde gelişsin.
Needle2'yi akıllı ev sensörleri ve giyilebilir cihazlarla nasıl entegre edeceğimden bahsetmeden önce hemen bir örnekle başlayalım 🎯.
Modern evlerde:
Bunların hepsi veri gönderiyor, değil mi? İşte Needle2, tam olarak bu noktada devreye giriyor:
Kod örneği (örnek sensör okuması)
import paho.mqtt.client as mqtt
import json
def on_connect(client, userdata, flags, rc):
client.subscribe("home/sensor/#")
def on_message(client, userdata, msg):
data = json.loads(msg.payload)
# Basit eşik kontrolü
if data.get("temperature", 0) > 30:
client.publish("alert/temperature", json.dumps({"status": "high", "value": data["temperature"]}))
elif data.get("gas", 0) > 500:
client.publish("alert/gas", json.dumps({"status": "leak", "value": data["gas"]}))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("mqtt.broker.example", 1883, 60)
client.loop_forever()
Ne oluyor? 🌡️
Needle2, MQTT üzerinden gelen sıcaklık verilerini anında kontrol eder. 30°C’yi aşınca hemen alert/temperature kanalına bildirim gönderir – böylece cihazlar arasında anında hızlı yanıt elde edilir.
Akıllı saatler, fitness takipçileri ve sağlık monitörleri:
Needle2, bu verileri "sağlık motoru" olarak işler:
model.h5) Needle2'ye kopyalanır.Kod örneği (tahmin ve bildirim)
from keras.models import load_model
import numpy as np
import serial
# Sağlık modelini yükle
model = load_model('heart_rate_model.h5')
# Örnek seri verisi (örneğin BLE'den)
def process_hr_data(hr_value):
input_data = np.array([[hr_value]])
prediction = model.predict(input_data, verbose=0)[0][0]
if prediction > 0.8: # Anormal risk eşiği
serial.write(b'ALARM')
else:
serial.write(b'OK')
# Sonsuz döngü (sabit sensör okuması)
while True:
raw = serial.readline().decode().strip()
if raw:
hr = float(raw)
process_hr_data(hr)
Nasıl çalışıyor? ❤️ Needle2, kalp atış hızı tahminini yapar ve tahmin 0.8’in üzerine çıkarsa hemen bir uyarı sinyali gönderir. Cihaz (saat, telefon vb.) hızlı bir titreşimle veya bildirimle kullanıcıyı uyarır.
Bunlar Needle2'nin akıllı ev sensörleri ve giyilebilir cihaz uygulamalarında çok yönlü bir "akıllı beyin" olarak nasıl çalıştığına dair pratik ipuçları 🛠. Daha fazla derinlemesine rehber mi istiyorsunuz? Hadi devam edelim!
Hadi pratik bir örnek üzerinden anlayalım. Needle2'yi mobil telefon ya da Raspberry Pi gibi bir cihazda çalıştırdığımızda, en çok merak ettiğimiz şeyler gecikme süresi, bellek tüketimi ve işlemci kullanımıdır. Bu bölümde, basit bir benchmark.sh betiği ile bu değerleri nasıl yakalayacağımıza ve elde edilen verileri kullanarak Needle2'yi optimize etmeye nasıl başlayacağımıza dair ipuçları paylaşacağım.
Aşağıda, Linux tabanlı cihazlar (mobil telefonlar dahil, eğer SSH erişiminiz varsa) ve Raspberry Pi için hızlıça çalıştırabileceğiniz benchmark.sh betiğini ekledim. Betik, basit zamanlama araçları ve sistem dosyaları (/proc/meminfo, top) kullanarak gerekli metrikleri toplayan bir şablon görevi görür; Needle2 üzerinde çalıştırmadan önce, needle2 --test-run komutunu kendi test komutunuzla değiştirebilirsiniz.
#!/usr/bin/env bash
# Needle2 performans ölçüm betiği
# Kullanım: ./benchmark.sh
set -euo pipefail
echo "📊 Ölçüm başlatılıyor..."
# Cihaz türünü belirle
DEVICE=$(uname -m)
echo "🖥 Cihaz: $DEVICE"
# ----- Gecikme süresi ölçümü -----
echo "⏱️ Gecikme ölçümü yapılıyor..."
START=$(date +%s%N)
# Needle2 komutunu çalıştır (gerçek komutunuzu kullanın)
needle2 --test-run -c 1000 > /dev/null 2>&1
END=$(date +%s%N)
LATENCY_NS=$((END - START))
LATENCY_MS=$((LATENCY_NS / 1_000_000))
echo "⚡ Gecikme: ${LATENCY_MS} ms"
# ----- Bellek bilgisi -----
TOTAL_MEM=$(grep MemTotal /proc/meminfo | awk '{print $2}')
echo "🧠 Toplam bellek: ${TOTAL_MEM} kB"
# ----- CPU kullanımı (basit) -----
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | tr -d '%')
echo "🖥 CPU kullanımı: ${CPU_USAGE}%"
echo "✅ Ölçüm tamamlandı."
Bu sayede ne oluyor?
/proc/meminfo dosyasından toplam RAM değerini okur ve sizinle paylaşır (gerçek bellek pencereleri için grep Needle2 filtreleme kullanabilirsiniz).top -bn1 ile CPU kullanımı üzerine hızlıca bir bakış atar ve basit bir yüzde değeri hesaplar.Gecikme süresi yüksekse (örneğin > 500 ms):
-m) değerini azaltarak Needle2'nin aynı anda işlediği veri miktarını sınırlandırabiliriz. Daha küçük pencereler genellikle daha hızlı çalışır.-t) düşürebiliriz; daha az iş parçacığı, daha düşük gecikme süresi sağlar ancak genel hızı etkileyebilir.Bellek kullanımı yüksekse (genellikle sistem toplamının %80’inden fazlası):
-k seçeneği) ile çalıştırarak daha küçük veri kümeleri için optimize edilmesini sağlayabiliriz.-f) kaldırarak ön işleme sürecindeki bellek kullanımını azaltabiliriz.CPU kullanımı yüksekse (örneğin %90’dan fazlası):
-p) azaltarak CPU başına yükü azaltabilir ve CPU sıcaklığını düşürebiliriz.cpulimit) çalıştırarak, cihazın gücü azaltmasına ve çalışmasını sürdürmesine yardımcı olabiliriz.benchmark.sh betiğini cihazınıza kopyalayın ve chmod +x benchmark.sh ile çalıştırılabilir hale getirin.-c seçeneği) ve bellek penceresi ayarları deneyerek ölçümleri tekrarlayın.gnuplot ile) ve optimize etme seçimlerinizi not edin.Umarım Needle2 performansını ölçmek için basit bir bash betiğiyle pratik bir başlangıç yaptık. Basit bir ölçümden, Needle2'yi ölçülebilir şekilde optimize etmeye giden bir yol çizdik. Sıradaki adıma geçerken bir deneme yapın ve ölçümleri kaydettiğinizde karşılaştırmalar yapın. İyi kodlamalar! 🚀
Hadi Edge cihazlarında Needle2 ile sık karşılaştığımız hataları hızlıca tespit etmeyi ve güvenliği orada tamamen sağlamayı öğrenelim.
asyncio.sleep() veya zamanlanmış görevler beklenmedik sonuçlar veriyor.print() etmek, gizlilik açısından bir risk oluşturuyor.logging.basicConfig(level=logging.DEBUG)'yi etkinleştirin ve cihaz kimliğini ekleyin.os.getenv()'yi kullanın.requests.post("http://localhost:8080/ping") ile test edin.# debug_tip.py
import logging, os, asyncio, requests
# Temel yapılandırma
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger("Needle2Debug")
# Ortam değişkeni desteği
DEVICE_ID = os.getenv("DEVICE_ID", "unknown_device")
async def check_loop_status():
"""Kontrol döngüsünün çalışıp çalışmadığını test eder."""
for i in range(3):
try:
resp = requests.get("http://127.0.0.1:8000/health", timeout=2)
logger.info(f"→ Döngü kontrolü {i+1}: {resp.status_code}")
except Exception as e:
logger.error(f"→ Döngü kontrolü {i+1} başarısız: {e}")
await asyncio.sleep(1)
def validate_certificate(cert_path: str) -> bool:
"""Basit sertifika doğrulaması."""
if not os.path.exists(cert_path):
logger.warning(f"→ Sertifika dosyası bulunamadı: {cert_path}")
return False
# Basit kontrol: dosya var mı ve "BEGIN CERTIFICATE" içeriyor mu?
with open(cert_path, "r") as f:
content = f.read()
if "BEGIN CERTIFICATE" in content:
logger.info("→ Sertifika doğrulandı.")
return True
else:
logger.error("→ Geçersiz sertifika formatı.")
return False
if __name__ == "__main__":
# Basit senaryo çalıştırma
asyncio.run(check_loop_status())
cert_ok = validate_certificate("/etc/needler/certs/device.crt")
if cert_ok:
logger.info("→ Cihaz hazır, Needle2'ye güvenebilirim!")
else:
logger.critical("→ Sertifika hatası, güvenlik açığı var!")
Bu sayede ne oluyor? Bu kod, önceki adımları günlüğe kaydetmeyi başlatıyor, Edge cihazının durumunu döngü halinde kontrol ediyor ve sertifikanın varlığını doğruluyor. Döngü sorunlarını tespit etmek için check_loop_status()'u kullanın ve validate_certificate() ile güvenlik açıklarını engelleyin.
api_key veya password gibi değerleri maskeleyin.TLS1.3 ile başlayan soketler açın ve ssl.SSLContext oluştururken check_hostname=True kullanın.Edge cihazınızdaki hataları hızla giderin ve gizlilikten asla ödün vermeyin. İyi kodlamalar! 🚀
Geliştiriciler için İleriye geçiş, doğru kaynaklarla çok daha kolay bir hâle gelebilir. Aşağıda, Needle2, LLM'ler ve mobil yapay zeka projelerinizi hızla ilerletebileceğiniz bir dizi uyumlu kaynak bulacaksınız.
Needle2 Belgeleri 🎯
LLM Entegrasyon Rehberi 🔁
Mobil AI Başlangıç Kılavuzu 🛠
# Örnek Needle2 kurulumu (Docker kullanarak)
docker build -t needle2 .
docker run -p 8080:8080 needle2
Bu sayede ne oluyor? → Minimal bir ortamda hızlı bir şekilde çalışmaya başlayabilir ve temel özellikleri test edebilirsiniz.
[needle2]
| Kaynak | Format | Neden Yararlı? |
|---|---|---|
| Yapay Zeka Mühendisliği Eğitimi (Coursera) | Video dersler | LLM'leri gerçek mobil projelere uyarlama sürecine derinlemesine dalın. |
| Docker ile Kapsüllere Giriş (Udemy) | Ders notları + pratik | Needle2 ortamınızı yalıtılmış ortamlarda çalıştırmak için gereksinim duyacağınız becerileri kazandırır. |
| TensorFlow Lite Kılavuzu 🎯 | Doküman + kod örnekleri | Modeli mobil cihazlere dağıtma konusunda pratik deneyim sağlar. |
| Hacker News Yazıları | Makaleler | Needle2 ve LLM entegrasyonu üzerine geliştiricilerin önerilerini öğrenin. |
| Özgür ve Açık Kaynaklı Kitaplar (PDF/EPUB) | Kitap biçimi | Derinlemesine teoriye ve uygulamalı örneklere ulaşın. |
İşte bu kadar! 📚🚀 Artık Needle2, LLM'ler ve mobil yapay zeka projelerinizi destekleyecek bir kaynak ağına sahipsiniz. Hadi, bir sonraki adıma geçin!
Hazırsan başlayalım! Needle2, mobil veya IoT projelerine hızlı bir başlangıç sağlayan hafif bir araç. Hadi pratik bir örnek üzerinden anlayalım ve kendi deneyimlerini oluştur.
from needle2 import init
init('my_first_project')
from needle2 import init → Needle2'yi projene dahil et.init('my_first_project') → Proje için temel bir ad alanı oluştur.needle2 test
Bu komut, kurduğun ortamı çalıştırıp en basit senaryonun çalışıp çalışmadığını kontrol eder. Eğer her şey yolundaysa, ✅ İlk adını attın!
pip install needle2).needle2 test komutunu çalıştır ve geri bildirimi takip et.İlk başlangıcı kazandırdıktan sonra, Needle2'nin derin特性 özelliklerini keşfetmeye devam et:
Unutma, Needle2 ile ihtiyacın olan tek şey hızlıca fikir üretmek ve onları test etmek. 🛠️
Ne oluyor burada? Needle2 ile gerçekten hızlı bir başlangıç yapabiliyorsun ve bunu tek bir kodu izleyerek test edebiliyorsun. Hadi şimdi biraz eğlen, birkaç saniye içerisinde kendi ilk deneyimini oluştur ve bunun üstesinden geldiğini göreceksin! 🎉
Bu içerik tamamen yapay zeka destekli otomasyon sistemi ile üretilmiştir.
All rights reserved