o
yf @ s d Z ddlZddlZddlZddlmZ ddlmZ ddlZddlZddl m
Z
ddlmZ dZ
dd Zd
d Zdd
Zdd Zdd ZdddZdddZdd Zdd Zdd ZdS )zGthis module contains code for processing response from fahamu client.py N)urljoin)quote)GeneNetworkQAClient)DocIDsz*https://genenetwork.fahamuai.com/api/tasksc C sN t | tr
| dS t | tr%| d d| d d| d d| d dS | S )z)Function for formatting bibliography infoz.txtauthor.titleyeardoi )
isinstancestrremovesuffixdict)bib_info r >/home/shebes/code/GN-LLM-Hacking/gnqa_eval/src/apis/process.pyformat_bibliography_info s
,r c C s t ddd | D S )z1helper function for filtering non-printable chars c S s g | ]}|t jv rt|qS r )string printabler
).0charr r r
<listcomp> s z(filter_response_text.<locals>.<listcomp>)jsonloadsjoin)valr r r filter_response_text s
r c
C sf g }| D ]*\}}d}|D ]
}|d|d 7 }q||}||kr#|n||} ||| |d q|S )z!function to parse doc_ids contentr text)doc_idbibInfocomboTxt)itemsappend)
context
get_info_funcformat_bib_funcresultsdoc_idssummary combo_txtentrydoc_infor r r r
parse_context$ s
r/ c
C s z)t td| d| d| }dd| i}tj||d}| ddi| W S tjjyF } ztd |j j
d
|j j |d}~w ty[ } z
tdt
| |d}~ww )
zJThis method is used to provide feedback for a document by making a rating.z/feedback?task_id=z
&document_id=z
&feedback=
AuthorizationzBearer )headersstatussuccessz HTTP Error Occurred: z -with status code- NzAn error occurred: )r BASE_URLrequestspostraise_for_statusr
exceptions HTTPErrorRuntimeErrorresponser status_code Exceptionr
) task_idr! rating
auth_tokenurlr1 resp
http_errorerrorr r r
rate_document3 s* rE c C sb t j|| }t j|st| dt|d
}t|W d S 1 s*w Y dS )z#function to open and load json filez was not found or is a directoryrbN)ospathr isfileFileNotFoundErroropenr load)filenamedir_path file_pathfile_handlerr r r load_fileF s $rQ r c C sj z"t |tj|d}| D ]}||d r||d |d<