
    0i\                       d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
  G d de      Z G d	 d
e      Z ee      j                         j                   j                   j                   dz  dz  Zedd       Zedd       Zy)u7   Anthropic SDK client factory ve sistem prompt yükleme.    )annotations)	lru_cache)Path)AsyncAnthropic)get_settingsc                      e Zd ZdZy)LLMClientErroru8   LLM tarafında recoverable hatalar için base exception.N__name__
__module____qualname____doc__     6/var/www/ai.patentyazar.com/app/services/llm/client.pyr	   r	      s    Br   r	   c                      e Zd ZdZy)LLMNotConfiguredErroru&   ANTHROPIC_API_KEY yoksa fırlatılır.Nr
   r   r   r   r   r      s    0r   r   promptszturkpatent.mdc                 z    t         j                         st        dt                t         j                  d      S )u   TürkPatent format kurallarını içeren sistem prompt'unu okur.

    Bu dosya prompt caching için stable bir prefix olmalı — değişirse cache
    invalidate olur (bkz. CLAUDE.md "LLM cost discipline").
    u    TürkPatent prompt bulunamadı: zutf-8)encoding)_PROMPT_PATHexistsr	   	read_textr   r   r   load_turkpatent_system_promptr      s7      ?~NOO!!7!33r   c                 p    t               } | j                  st        d      t        | j                        S )zBGlobal AsyncAnthropic client. API key yoksa LLMNotConfiguredError.uK   ANTHROPIC_API_KEY tanımlı değil. backend-python/.env dosyasına ekleyin.)api_key)r   anthropic_api_keyr   r   )settingss    r   get_anthropic_clientr   $   s7     ~H%%#Y
 	
 ("<"<==r   N)returnstr)r    r   )r   
__future__r   	functoolsr   pathlibr   	anthropicr   
app.configr   	Exceptionr	   r   __file__resolveparentr   r   r   r   r   r   <module>r+      s    = "   $ #CY C1N 1 H~%%'..55<<yH?Z 4 4 > >r   