Kurumsal projelerde aylık geliştirici raporlarından elle iş listesi çıkarmak hem zaman alıcı hem de hataya açık bir süreçtir. Farklı formatlarda yazılmış yüzlerce raporu tarayıp anlamlı iş adımlarını seçmek, kimilerine göre basit bir göreve benzeyebilir. Ancak bu işlem aslında veri kalitesi, tekrarlanan görevler ve gizlilik riskleriyle doludur. Neyse ki, yerel bir yapay zeka aracıyla bu süreci otomatikleştirmek ve verilerinizi kontrol altında tutmak mümkün.
Bu yazıda, şirket içi sunucularda çalışan ve verilerinize üçüncü şahısların erişimini engelleyen bir LLM aracının nasıl geliştirildiğini ayrıntılarıyla anlatacağız. Geliştirme süreci boyunca karşılaşılan teknik zorluklar ve çözümleri de ele alacağız.
Raporların Elle İş Listesine Dönüştürülmesinin Zorlukları
Yöneticiler genellikle her ayın sonunda geliştiricilerden gelen raporları toplar ve içerisinde yer alan yüzlerce kaydı tek tek inceleyerek anlamlı iş adımlarını seçer. Bu süreç basit gibi görünse de birçok sorun barındırır:
- Veri kalitesi sorunları: Geliştiriciler raporlarını farklı formatlarda yazabilir. Bazıları detaylı Jira bilet numaraları ve açıklamaları içerirken, diğerleri "sorun çözüldü" gibi kısa ifadeler kullanabilir. Bu durumda, projeye yeni katılan bir yönetici için hangi işin hangi özelliğe ait olduğunu anlamak oldukça zorlaşır.
- Tekrarlanan görevler: Raporlarda aynı görevin farklı günlerde tekrar tekrar kaydedilmesi yaygın bir durumdur. Örneğin, bir geliştirici "kodu yeniden düzenledi" gibi bir ifade kullanabilir ve bu, projenin ilerleyen aşamalarında aynı görevin birden fazla kez listelenmesine neden olabilir.
- Gizlilik riskleri: Raporları bulut tabanlı yapay zeka araçlarına göndermek, iç projelerin detaylarını üçüncü şahıslarla paylaşmak anlamına gelir. Finans veya sağlık gibi hassas sektörlerde çalışan şirketler için bu durum kabul edilemezdir.
Yerel Bir LLM Aracıyla Raporlardan İş Listesi Oluşturma
Çözüm olarak, şirket içi sunucularda çalışan ve tamamen yerel olan bir konsol uygulaması geliştirildi. Bu uygulama, aylık raporlama döngüsünün sonunda otomatik olarak çalıştırılır ve geliştiricilerin gönderdiği raporları iş adımlarına dönüştürür. Aracın mimarisi aşağıdaki bileşenlerden oluşur:
- Veri normalizasyonu: Farklı formatlardaki raporları makine tarafından okunabilir ve yapılandırılmış verilere dönüştürür.
- Parçalama (chunking): Büyük raporları daha küçük parçalara ayırarak yerel LLM’nin token sınırlarını aşmasını engeller.
- Jira entegrasyonu: Raporlarda geçen Jira bilet numaralarını kullanarak ilgili biletlerin detaylarını çeker ve raporlara anlam katar.
- Gürültü filtresi: Anlamsız ifadeleri (örneğin, "çalışıyorum", "takip ediyorum") otomatik olarak eleyerek yalnızca anlamlı iş adımlarını korur.
- Çoğaltma tespiti: Vektör tabanlı arama ile benzer görevleri birbirinden ayırır ve tekrarlanan kayıtları ortadan kaldırır.
Veri Normalizasyonu: Düzensiz Raporları Yapılandırılmış Veriye Dönüştürme
Bir projeye ait bir ay boyunca 80’den fazla rapor alınabilir. Bu raporlar geliştiricilere göre farklı formatlarda olabilir: bazıları detaylı açıklamalar içerirken, diğerleri yalnızca birkaç kelimeden oluşur. Öncelikle, bu düzensiz verileri standart bir şablona dönüştürmek gerekir. Bu adım, raporları makine tarafından okunabilir ve işlenebilir bir forma sokar.
Parçalama: Token Sınırlarını Aşma
Yerel bir LLM kullanıldığında, token sınırları önemli bir kısıtlama oluşturur. Örneğin, Ollama ile çalıştırılan Gemma 4 E2B modeli yalnızca 4.096 token’lık bir bağlam penceresine sahiptir. Yoğun bir projeden gelen bir ayın raporları bu limiti kolayca aşabilir.
Çözüm olarak, raporları yaklaşık 20’şerlik gruplar halinde parçalara ayırdık. Her grup, modelin tam bağlamını koruyacak şekilde ayrı ayrı işlendi. Test aşamasında, 22 raporun 94 ayrı iş adımına dönüştürüldüğünü gözlemledik.
Jira’dan Ek Bağlam Ekleme
Raporlarda geçen Jira bilet numaralarını kullanarak, ilgili biletlerin detaylarını otomatik olarak Jira API’sinden çekmek, çıktının kalitesini önemli ölçüde artırdı. Geliştiriciler genellikle yalnızca bilet numarasını raporlarına eklerken, Jira’dan çekilen detaylı açıklamalar sayesinde yöneticiler, hangi işin yapıldığını net bir şekilde görebilir.
Gürültü Filtresi: Anlamsız İfadeleri Eleme
"Çalışıyorum", "takip ediyorum" gibi ifadeler, anlamlı bir iş adımı oluşturmadığı için filtrelendi. LLM, bu filtreyi uyguladıktan sonra yalnızca 29 adet anlamlı iş adımı kaldı. Toplamda 94 adayın yalnızca %30’u nihai listeye dahil edildi.
Vektör Tabanlı Çoğaltma Tespiti
Benzer görevlerin tekrar tekrar listelenmesini engellemek için vektör tabanlı arama kullanıldı. Bu yöntemle, farklı cümle yapılarına sahip olsa bile benzer anlam taşıyan görevler birbirinden ayrıldı. Test aşamasında, bu adımın çoğaltılmış görevleri %40 oranında azalttığı gözlemlendi.
Teknik Detaylar: Uygulama ve Entegrasyon
Uygulama, Python dilinde geliştirildi ve aşağıdaki bileşenleri içeriyor:
# Rapor işleme pipeline’ının temel bileşenleri
from transformers import AutoTokenizer, AutoModel
from sklearn.metrics.pairwise import cosine_similarity
import jira
import ollama
# Yerel LLM’nin çalıştırılması
model = ollama.pull("gemma4:e2b")
# Embedding modeli (nomic-embed-text)
tokenizer = AutoTokenizer.from_pretrained("nomic-ai/nomic-embed-text-v1")
model = AutoModel.from_pretrained("nomic-ai/nomic-embed-text-v1")
# Jira API entegrasyonu
jira_client = jira.JIRA(server=" basic_auth=("username", "password"))Uygulama, cron job aracılığıyla her ayın sonunda otomatik olarak çalıştırılır. Raporların işlenmesi ve Jira’dan ek verilerin çekilmesi birkaç dakika içinde tamamlanır. Sonuç olarak, yöneticiler yalnızca anlamlı ve tekrarlanmayan iş adımlarından oluşan bir liste elde eder.
Gelecek Adımlar: Daha Akıllı ve Ölçeklenebilir Çözümler
Bu proje, yerel LLM’lerin kurumsal ortamlarda nasıl kullanılabileceğine dair önemli bir örnek oluşturuyor. Gelecekte, bu sistemi daha da geliştirebilir ve aşağıdaki alanlarda iyileştirmeler yapabiliriz:
- Gerçek zamanlı raporlama: Raporların günlük olarak işlenmesi ve sürekli bir iş listesinin tutulması.
- Geliştirici dostu arayüz: Konsol uygulamasına ek olarak, kullanıcı dostu bir web arayüzü geliştirilmesi.
- Daha gelişmiş filtreleme: Doğal dil işleme teknikleriyle raporların daha hassas bir şekilde sınıflandırılması.
Yerel yapay zeka araçları, özellikle veri gizliliğinin kritik olduğu sektörlerde, şirketlerin iş süreçlerini otomatikleştirmesine ve verimliliği artırmasına yardımcı olabilir. Bu proje, sadece bir başlangıç noktası ve gelecekteki yenilikler için ilham kaynağı olabilir.
Yapay zeka özeti
Aylık raporlardan elle iş listesi çıkarmak zahmetli ve hataya açık. Yerel LLM aracıyla raporları otomatik olarak yapılandırın, Jira entegrasyonu kurun ve verilerinizi koruyun.