in use-cases/rag-pipeline/backend/src/generate_embeddings.py [0:0]
def get_text_embeddings(text):
"""
Fetches text embeddings from a text embedding API.
Args:
text: The input text.
Returns:
The text embeddings as a JSON object.
Raises:
requests.exceptions.HTTPError: If there is an error fetching the text embeddings
or the API returns an invalid response.
"""
try:
response = requests.post(
TEXT_API_ENDPOINT,
json={"caption": text},
headers={"Content-Type": "application/json"},
timeout=100,
)
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
return response.json()["text_embeds"]
except requests.exceptions.HTTPError as e:
logger.exception("Error fetching text embedding: %s", e)
raise
except requests.exceptions.RequestException as e:
logger.exception("Error fetching text embedding: %s", e)
raise requests.exceptions.HTTPError(
"Error fetching text embedding", response=requests.Response()
) from e
except (ValueError, TypeError) as e:
logger.exception(
"Not able to decode received json from text embedding API: %s", e
)
raise requests.exceptions.HTTPError(
"Invalid response from text embedding API", response=requests.Response()
) from e