Ana içeriğe geç

authorization

Langsmith evaluator

“Authorization” Hatası: Evaluator Testlerinde İnce Bir Header Hatası

LangSmith üzerinde evaluator ile testler yaparken, küçük ama uğraştırıcı bir problemle karşılaştım. Bu durum, küçük uygulama detaylarının bile standart davranışları nasıl bozabileceğini gösteriyor.

Kurulum

Modelim için bir “Correctness” evaluator oluşturdum. Model, Extra Headers alanı üzerinden Authorization header’ı ekledim, zira uzak sunucudaki Ollama bunu gerektiriyor.

Her şey oldukça standart, başka bir ayar değiştirmedim.

Problem

Header’ı şu şekilde manuel olarak eklediğimde:

Authorization: Bearer <token>

testler sorunsuz çalışıyor.

Ancak evaluator’ı kaydettikten sonra LangSmith, header’ı otomatik olarak küçük harfe çeviriyor:

authorization: Bearer <token>

İlk bakışta bu bir problem olmamalı. HTTP spesifikasyonuna göre header isimleri case-insensitive’tir. Yani Authorization ve authorization aynı şekilde değerlendirilmelidir.

Fakat pratikte beklenmeyen bir durum ortaya çıkıyor.

Davranış

  • Authorization ile manuel test → çalışıyor
  • authorization ile kaydedilmiş evaluator → çalışmıyor
  • Aynı sorun Playground’da da tekrar ediyor

Bu tutarsızlık, request zincirinin bir yerinde header büyük/küçük harf duyarlılığının yanlış ele alındığını gösteriyor.

Neden Önemli?

Bu tür problemler özellikle zorlayıcıdır çünkü:

  • HTTP standartlarına aykırı davranır
  • Debug sürecinde kolayca gözden kaçabilir
  • Test ve kayıtlı konfigürasyonlar arasında tutarsızlık yaratır

Geliştiriciler için bu durum, aslında basit bir header problemi olmasına rağmen zaman kaybettiren karmaşık bir kimlik doğrulama sorunu gibi görünebilir.

Henüz kesin sebebi belirleyemedim, ancak Langsmith backend'inde bir problem olduğunu düşünüyorum. Hatayı site üzerinden bildirdim.

Standartların her zaman doğru uygulanacağını varsaymayın.
Debug yaparken ham request’leri karşılaştırın. Küçük farklar büyük sorunlara yol açabilir.