99 lines
3.3 KiB
Python
99 lines
3.3 KiB
Python
import requests
|
|
import json
|
|
from typing import Optional
|
|
|
|
# Define a function to make the GET request
|
|
def get_metadata_grouped_data(
|
|
api_key: str,
|
|
metadata_key: str,
|
|
time_of_generation_min: Optional[str] = None,
|
|
time_of_generation_max: Optional[str] = None,
|
|
total_units_min: Optional[int] = None,
|
|
total_units_max: Optional[int] = None,
|
|
cost_min: Optional[float] = None,
|
|
cost_max: Optional[float] = None,
|
|
prompt_token_min: Optional[int] = None,
|
|
prompt_token_max: Optional[int] = None,
|
|
completion_token_min: Optional[int] = None,
|
|
completion_token_max: Optional[int] = None,
|
|
status_code: Optional[str] = None,
|
|
weighted_feedback_min: Optional[float] = None,
|
|
weighted_feedback_max: Optional[float] = None,
|
|
virtual_keys: Optional[str] = None,
|
|
configs: Optional[str] = None,
|
|
workspace_slug: Optional[str] = None,
|
|
api_key_ids: Optional[str] = None,
|
|
current_page: Optional[int] = 1,
|
|
page_size: Optional[int] = 20,
|
|
metadata: Optional[str] = None,
|
|
ai_org_model: Optional[str] = None,
|
|
trace_id: Optional[str] = None,
|
|
span_id: Optional[str] = None,
|
|
):
|
|
url = f"https://api.portkey.ai/v1/analytics/groups/metadata/{metadata_key}"
|
|
|
|
# Set up query parameters
|
|
params = {
|
|
"time_of_generation_min": time_of_generation_min,
|
|
"time_of_generation_max": time_of_generation_max,
|
|
"total_units_min": total_units_min,
|
|
"total_units_max": total_units_max,
|
|
"cost_min": cost_min,
|
|
"cost_max": cost_max,
|
|
"prompt_token_min": prompt_token_min,
|
|
"prompt_token_max": prompt_token_max,
|
|
"completion_token_min": completion_token_min,
|
|
"completion_token_max": completion_token_max,
|
|
"status_code": status_code,
|
|
"weighted_feedback_min": weighted_feedback_min,
|
|
"weighted_feedback_max": weighted_feedback_max,
|
|
"virtual_keys": virtual_keys,
|
|
"configs": configs,
|
|
"workspace_slug": workspace_slug,
|
|
"api_key_ids": api_key_ids,
|
|
"current_page": current_page,
|
|
"page_size": page_size,
|
|
"metadata": metadata,
|
|
"ai_org_model": ai_org_model,
|
|
"trace_id": trace_id,
|
|
"span_id": span_id,
|
|
}
|
|
|
|
# Remove any keys with None values
|
|
params = {k: v for k, v in params.items() if v is not None}
|
|
|
|
# Set up the headers
|
|
headers = {
|
|
"Authorization": f"Bearer {api_key}",
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
# Make the GET request
|
|
response = requests.get(url, headers=headers, params=params)
|
|
|
|
# Check for successful response
|
|
if response.status_code == 200:
|
|
return response.json() # Return JSON data
|
|
else:
|
|
response.raise_for_status() # Raise an exception for errors
|
|
|
|
# Example usage
|
|
# Replace 'your_api_key' and 'your_metadata_key' with actual values
|
|
api_key = 'your_api_key'
|
|
metadata_key = 'your_metadata_key'
|
|
|
|
try:
|
|
data = get_metadata_grouped_data(
|
|
api_key=api_key,
|
|
metadata_key=metadata_key,
|
|
time_of_generation_min="2024-08-23T15:50:23+05:30",
|
|
time_of_generation_max="2024-09-23T15:50:23+05:30",
|
|
total_units_min=100,
|
|
total_units_max=1000,
|
|
cost_min=10,
|
|
cost_max=100,
|
|
status_code="200,201"
|
|
)
|
|
print(json.dumps(data, indent=4))
|
|
except Exception as e:
|
|
print(f"Error occurred: {str(e)}") |