Spaces:
Sleeping
Sleeping
| from functools import lru_cache | |
| from typing import Optional | |
| from pydantic_settings import BaseSettings | |
| EXTRACT_INFO_SYSTEM = "You are an expert in structured data extraction. You will be given an image or a set of images of a product and should extract its properties into the given structure." | |
| EXTRACT_INFO_HUMAN = ( | |
| """Output properties of the main product (or {product_taxonomy}) shown in the images. You should use the following product data to assist you, if available: | |
| {product_data} | |
| If an attribute appears in both the image and the product data, use the value from the product data.""" | |
| ).replace(" ", "") | |
| FOLLOW_SCHEMA_SYSTEM = "You are an expert in structured data extraction. You will be given an dictionary of attributes of a product and should output the its properties into the given structure." | |
| FOLLOW_SCHEMA_HUMAN = """Convert following attributes to structured schema. Keep all the keys and number of values. Only replace the values themselves. : | |
| {json_info}""" | |
| class Prompts(BaseSettings): | |
| EXTRACT_INFO_SYSTEM_MESSAGE: str = EXTRACT_INFO_SYSTEM | |
| EXTRACT_INFO_HUMAN_MESSAGE: str = EXTRACT_INFO_HUMAN | |
| FOLLOW_SCHEMA_SYSTEM_MESSAGE: str = FOLLOW_SCHEMA_SYSTEM | |
| FOLLOW_SCHEMA_HUMAN_MESSAGE: str = FOLLOW_SCHEMA_HUMAN | |
| # Create a cached instance of settings | |
| def get_prompts() -> Prompts: | |
| """ | |
| Create and cache a Prompts instance. | |
| Returns the same instance for subsequent calls. | |
| """ | |
| prompts = Prompts() | |
| return prompts | |