
    ;j-                    l   d Z ddlmZ ddlZddlZddlZddlZddlZddl	Zej
                            dd                              d          Zej
                            dd          Zej
                            d	d
          ZdZddddddZddZd dZd!dZedk    r e e                      dS )"a&  Read-only helper for the local Qwen llama-server.

Usage examples:
  echo "Long text..." | qwen_readonly.py summarize
  qwen_readonly.py classify "Ist das Finance oder Health?"
  qwen_readonly.py probe

Policy: extraction/summarization/classification/drafting only. No writes, no side effects.
    )annotationsNQWEN_BASE_URLzhttp://100.101.173.25:11435/v1/
QWEN_MODELzqwen-3.6-agentQWEN_API_KEYzsk-1234uo  Du bist Qwen, ein lokaler read-only Worker für JARVIS/Hermes.
Erlaubt: zusammenfassen, extrahieren, klassifizieren, einfache Entwürfe.
Verboten: externe Aktionen, Dateiänderungen, finale Health-/Finance-Entscheide,
Code-/Systemarchitektur-Änderungen als finale Autorität, Secrets anfordern oder ausgeben.
Antworte kurz, strukturiert und markiere Unsicherheiten.
zAntworte exakt: ponguc   Fasse den folgenden Text präzise zusammen. Gib Kernaussagen, offene Punkte und Unsicherheiten aus.zoExtrahiere strukturierte Fakten aus dem folgenden Text. Gib JSON-nahe Bulletpoints mit Quelle/Unsicherheit aus.uo   Klassifiziere den folgenden Text nach Domain, Risiko, benötigtem Kontext und ob ein starkes Modell nötig ist.zbErstelle einen knappen Entwurf aus dem folgenden Material. Keine finalen Entscheidungen behaupten.)probe	summarizeextractclassifydraftargv	list[str]returntuple[str, str]c                   t          |           dk    r| d         nd}|t          vr-t          d|dd                    t                               |dk    rd}nOt          |           dk    rd	                    | dd                    }nt          j                                        }||                                fS )
N   r	   zUnknown mode z. Use one of: z, r        )lenPROMPTS
SystemExitjoinsysstdinreadstrip)r   modetexts      ,/home/agent/.hermes/scripts/qwen_readonly.py
read_inputr!   (   s    $ii!mm477D7SSStyy?Q?QSSTTTw	TQxxQRR!!y~~    r   strr   dictc           	     6   t           |          }|r|d|z   z  }t          dt          dd|dg| dv rdnd| dk    rd	nd
d}t          j                            t          dz   t          j        |          	                    d          ddt           dd          }t          j                    }t          j                            |d          5 }|                                                    d          }d d d            n# 1 swxY w Y   t          j        |          }dt          t          | t!          t          j                    |z
  dz            |                    di g          d                             di                               dd          dS )Nz

--- INPUT ---
system)rolecontentuser>   r   r
   r   g?g333333?r   i     )modelmessagestemperature
max_tokensz/chat/completionszutf-8zapplication/jsonzBearer )zContent-TypeAuthorizationPOST)dataheadersmethod<   )timeoutTi  choicesr   messager(   r   )okbase_urlr+   r   
latency_msr(   )r   MODELSYSTEMurllibrequestRequestBASE_URLjsondumpsencodeAPI_KEYtimeurlopenr   decodeloadsroundget)	r   r   r)   payloadreqstartedresprawr1   s	            r    	call_qwenrP   5   s   4=D -%,,&11--
 #&FFFssC"goodd2 G .
 
 &&Z  ''00!3FYPWFYFYZZ	 !  C ikkG			R		0	0 *Diikk  ))* * * * * * * * * * * * * * *:c??DTY[[72d:;;88It,,Q/33IrBBFFyRTUU  s   (DD	Dintc            	        t          t          j                  \  } }	 t          | |          }n# t          j        j        $ r)}dt          t          | t          |          d}Y d }~nQd }~wt          $ rA}dt          t          | t          |          j        dz   t          |          z   d}Y d }~nd }~ww xY wt          t          j        |dd                     |                    d          rdndS )NF)r8   r9   r+   r   errorz: r   )ensure_asciiindentr8   r   )r!   r   r   rP   r=   rS   URLErrorr@   r;   r#   	Exceptiontype__name__printrA   rB   rJ   )r   r   resultes       r    mainr]   V   s   CH%%JD$~4&&<  d d d8eT\_`a\b\bcc ~ ~ ~8eT\`ab\c\c\los\svyz{v|v|\|}}~	$*V%
:
:
:;;;

4  '11a's!   / B5A''B547B00B5__main__)r   r   r   r   )r   r#   r   r#   r   r$   )r   rQ   )__doc__
__future__r   rA   osr   rE   urllib.errorr=   urllib.requestenvironrJ   rstripr@   r;   rD   r<   r   r!   rP   r]   rY   r    r"   r    <module>rg      sA    # " " " " "  				 



         :>>/+KLLSSTWXX

|%566
*..
3
3
 $v A Bq 
 
 
 
   B	( 	( 	( 	( z
*TTVV

 r"   