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() | |