Bagoodex-Web-Search / bagoodex_client.py
abdibrokhim's picture
first version working nice...
85cec0e
raw
history blame
2.45 kB
import os
import requests
from openai import OpenAI
from dotenv import load_dotenv
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=[{"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 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()