Spaces:
Runtime error
Runtime error
import os | |
import requests | |
from openai import OpenAI | |
from dotenv import load_dotenv | |
from r_types import ChatMessage | |
from prompts import SYSTEM_PROMPT_BASE, SYSTEM_PROMPT_MAP | |
from typing import List | |
load_dotenv() | |
API_KEY = os.getenv("AIML_API_KEY") | |
API_URL = "https://api.aimlapi.com" | |
class BagoodexClient: | |
def __init__(self, api_key=API_KEY, api_url=API_URL): | |
self.api_key = api_key | |
self.api_url = api_url | |
self.client = OpenAI(base_url=self.api_url, api_key=self.api_key) | |
def complete_chat(self, query): | |
""" | |
Calls the standard chat completion endpoint using the provided query. | |
Returns the generated followup ID and the text response. | |
""" | |
response = self.client.chat.completions.create( | |
model="bagoodex/bagoodex-search-v1", | |
messages=[ | |
ChatMessage(role="user", content=SYSTEM_PROMPT_BASE), | |
ChatMessage(role="user", content=query) | |
], | |
) | |
followup_id = response.id # the unique ID for follow-up searches | |
answer = response.choices[0].message.content | |
return followup_id, answer | |
def base_qna(self, messages: List[ChatMessage], system_prompt=SYSTEM_PROMPT_BASE): | |
response = self.client.chat.completions.create( | |
model="gpt-4o", | |
messages=[ | |
ChatMessage(role="user", content=system_prompt), | |
*messages | |
], | |
) | |
return response.choices[0].message.content | |
def get_links(self, followup_id): | |
headers = {"Authorization": f"Bearer {self.api_key}"} | |
params = {"followup_id": followup_id} | |
response = requests.get( | |
f"{self.api_url}/v1/bagoodex/links", headers=headers, params=params | |
) | |
return response.json() | |
def get_images(self, followup_id): | |
headers = {"Authorization": f"Bearer {self.api_key}"} | |
params = {"followup_id": followup_id} | |
response = requests.get( | |
f"{self.api_url}/v1/bagoodex/images", headers=headers, params=params | |
) | |
return response.json() | |
def get_videos(self, followup_id): | |
headers = {"Authorization": f"Bearer {self.api_key}"} | |
params = {"followup_id": followup_id} | |
response = requests.get( | |
f"{self.api_url}/v1/bagoodex/videos", headers=headers, params=params | |
) | |
return response.json() | |
def get_local_map(self, followup_id): | |
headers = {"Authorization": f"Bearer {self.api_key}"} | |
params = {"followup_id": followup_id} | |
response = requests.get( | |
f"{self.api_url}/v1/bagoodex/local-map", headers=headers, params=params | |
) | |
return response.json() | |
def get_knowledge(self, followup_id): | |
headers = {"Authorization": f"Bearer {self.api_key}"} | |
params = {"followup_id": followup_id} | |
response = requests.get( | |
f"{self.api_url}/v1/bagoodex/knowledge", headers=headers, params=params | |
) | |
return response.json() | |