Source code for langchain_community.utilities.portkey
importjsonimportosfromtypingimportDict,Optional
[docs]classPortkey:"""Portkey configuration. Attributes: base: The base URL for the Portkey API. Default: "https://api.portkey.ai/v1/proxy" """base:str="https://api.portkey.ai/v1/proxy"
[docs]@staticmethoddefConfig(api_key:str,trace_id:Optional[str]=None,environment:Optional[str]=None,user:Optional[str]=None,organisation:Optional[str]=None,prompt:Optional[str]=None,retry_count:Optional[int]=None,cache:Optional[str]=None,cache_force_refresh:Optional[str]=None,cache_age:Optional[int]=None,)->Dict[str,str]:assertretry_countisNoneorretry_countinrange(1,6),("retry_count must be an integer and in range [1, 2, 3, 4, 5]")assertcacheisNoneorcachein["simple","semantic",],"cache must be 'simple' or 'semantic'"assertcache_force_refreshisNoneor(isinstance(cache_force_refresh,str)andcache_force_refreshin["True","False"]),"cache_force_refresh must be 'True' or 'False'"assertcache_ageisNoneorisinstance(cache_age,int),("cache_age must be an integer")os.environ["OPENAI_API_BASE"]=Portkey.baseheaders={"x-portkey-api-key":api_key,"x-portkey-mode":"proxy openai",}iftrace_id:headers["x-portkey-trace-id"]=trace_idifretry_count:headers["x-portkey-retry-count"]=str(retry_count)ifcache:headers["x-portkey-cache"]=cacheifcache_force_refresh:headers["x-portkey-cache-force-refresh"]=cache_force_refreshifcache_age:headers["Cache-Control"]=f"max-age:{str(cache_age)}"metadata={}ifenvironment:metadata["_environment"]=environmentifuser:metadata["_user"]=useriforganisation:metadata["_organisation"]=organisationifprompt:metadata["_prompt"]=promptifmetadata:headers.update({"x-portkey-metadata":json.dumps(metadata)})returnheaders