• Arsa, arazi ve gayrimenkul sorularınızı ilgili bölümde sorun; bölgesel bilgi ve deneyimlerinizi paylaşın.

Rehber Komut Defteri: tarayıcıda çalışan tek dosyalık yapay zeka komut arşivi

  • Konuyu Başlatan Konuyu Başlatan Mehmet
  • Başlangıç tarihi Başlangıç tarihi
  • Öne çıkan
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 87

Mehmet

Admin
Konum
Kocaeli
Konular
1.504
Mesajlar
1.519
Çözümler
0
Yetki Belge No
4100307
Danışman mısınız?
Evet
Aynı komutu farklı sohbetlerden tekrar bulmaya çalışıyorsanız küçük bir komut arşivi işinizi kolaylaştırabilir. Bu örnekte tek HTML dosyasıyla başlık ve komut saklayan bir başlangıç uygulaması var. Bir yapay zekâ sağlayıcısına bağlanmaz, API anahtarı istemez ve yazdıklarınızı sunucuya göndermez. Komutlar açık sayfanın belleğinde tutulur; kalıcı kopya için JSON indirmeniz gerekir.

Nasıl kullanılır?​

Kodun tamamını bir metin düzenleyiciye yapıştırın. UTF-8 kodlamasıyla komut-defteri.html adıyla kaydedin ve tarayıcıda açın. Başlık alanına “Ürün açıklaması”, komut alanına kendi metninizi yazıp Komutu ekle düğmesini kullanın. Listede yeni bir başlık ve altında komutun aynısını görmelisiniz. Bu küçük sürüm, hesabı olan bir bulut uygulaması veya çok kullanıcılı hizmet değildir.

HTML:
<!doctype html>
<html lang="tr"><meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Komut Defteri</title>
<style>body{font:16px system-ui;max-width:760px;margin:24px auto;padding:16px}input,textarea{display:block;box-sizing:border-box;width:100%;margin:8px 0;padding:10px}button{padding:10px;margin:4px}pre{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #aaa;padding:12px}</style>
<h1>Komut Defteri</h1>
<p>Kayıtlar sayfa belleğindedir. Kapatmadan önce JSON indir düğmesini kullanın.</p>
<label>Başlık<input id="title" maxlength="120"></label>
<label>Komut<textarea id="prompt" rows="6"></textarea></label>
<button id="add">Komutu ekle</button>
<button id="export">JSON indir</button>
<label>Önceki JSON dosyasını aç<input id="import" type="file" accept=".json,application/json"></label>
<p id="notice" role="status"></p><main id="items"></main>
<script>
const byId = id => document.getElementById(id);
let entries = [];
function render() {
  byId('items').replaceChildren();
  for (const entry of entries) {
    const heading = document.createElement('h2');
    const text = document.createElement('pre');
    heading.textContent = entry.title;
    text.textContent = entry.prompt;
    byId('items').append(heading, text);
  }
  byId('notice').textContent = entries.length + ' kayıt var.';
}
byId('add').onclick = () => {
  const title = byId('title').value.trim();
  const prompt = byId('prompt').value.trim();
  if (!title || !prompt) { byId('notice').textContent = 'Başlık ve komut gerekli.'; return; }
  entries.push({title, prompt}); render();
  byId('title').value = ''; byId('prompt').value = '';
};
byId('export').onclick = () => {
  const blob = new Blob([JSON.stringify(entries, null, 2)], {type:'application/json;charset=utf-8'});
  const url = URL.createObjectURL(blob);
  const link = document.createElement('a');
  link.href = url; link.download = 'komutlar.json'; link.click();
  setTimeout(() => URL.revokeObjectURL(url), 1000);
};
byId('import').onchange = async event => {
  const file = event.target.files[0]; if (!file) return;
  if (file.size > 1000000) { byId('notice').textContent = 'Dosya 1 MB altında olmalı.'; return; }
  try {
    const data = JSON.parse(await file.text());
    if (!Array.isArray(data) || data.length > 500 || data.some(x => !x || typeof x.title !== 'string' || typeof x.prompt !== 'string')) throw Error();
    entries.push(...data.map(x => ({title:x.title, prompt:x.prompt}))); render();
  } catch { byId('notice').textContent = 'Geçerli bir komutlar JSON dosyası seçin.'; }
};
</script></html>

Kapatmadan önce çıktıyı indirin​

JSON indir düğmesi arşivinizi komutlar.json dosyasına aktarır. Sayfayı kapatmadan önce bu dosyayı indirin. Yeniden açınca dosya seçme alanından kendi JSON yedeğinizi ekleyin. İçe aktarma mevcut listeye ekleme yapar; aynı dosyayı iki kez seçerseniz aynı kayıtları iki kez eklersiniz. Kod bunu bir eşitleme hizmeti gibi ele almaz.

Bu davranışı denemek için önce iki örnek kayıt girin, dışarı aktarın ve boş bir sayfa oturumuna geri yükleyin. Türkçe harflerin, satır sonlarının ve komut içindeki tırnakların korunduğunu kontrol edin. Eksik başlıkta kaydın reddedildiğini de deneyin. Hatalı JSON seçildiğinde arayüzün hata bildirmesi, farklı dosyaların sessizce komut gibi kabul edilmesini önler.

Neden metni HTML olarak eklemiyor?​

Komut alanında kod parçaları veya açılı ayraçlar bulunabilir. Örnek bunları sayfaya textContent ile metin olarak yerleştirir; komutları çalışan HTML'e çevirmek bu arşiv için gerekli değildir. JSON dışarı aktarma ise tarayıcının Blob ve nesne bağlantısı işlevlerini kullanır. Bu temel yöntemlerin belgeleri kaynaklarda bulunuyor.

Geliştirmek isterseniz önce arama ve etiket ekleyin. Silme ve düzenleme gibi işlevlerden önce ayrı bir dışarı aktarma kopyası alın. Üretim uygulamasına dönüştürmek, kullanıcı hesabı ve sunucu saklaması gibi ek kararlar gerektirir. Bu sürümün hedefi, aynı bilgisayarda komutlarını görünür bir dosyayla taşımak isteyenler için anlaşılır bir başlangıç sunmaktır.

Kaynaklar​

MDN: sayfa öğesi oluşturma
MDN: dosya çıktısı için nesne bağlantısı
 

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst