()
| 33 | |
| 34 | |
| 35 | async def sync_model_schema_data(): |
| 36 | global _provider_checksum, _model_schema_checksum, _i18n_checksum |
| 37 | async with aiohttp.ClientSession() as session: |
| 38 | response = await session.get( |
| 39 | f"{CONFIG.TASKINGAI_INFERENCE_URL}/v1/cache_checksums", |
| 40 | ) |
| 41 | response_wrapper = ResponseWrapper(response.status, await response.json()) |
| 42 | check_http_error(response_wrapper) |
| 43 | response_data = response_wrapper.json()["data"] |
| 44 | provider_checksum = response_data["provider_checksum"] |
| 45 | model_schema_checksum = response_data["model_schema_checksum"] |
| 46 | i18n_checksum = response_data["i18n_checksum"] |
| 47 | if ( |
| 48 | provider_checksum == _provider_checksum |
| 49 | and model_schema_checksum == _model_schema_checksum |
| 50 | and i18n_checksum == _i18n_checksum |
| 51 | ): |
| 52 | logger.debug(f"Checksums are the same, no need to sync model schema data.") |
| 53 | return |
| 54 | |
| 55 | async with aiohttp.ClientSession() as session: |
| 56 | response = await session.get( |
| 57 | f"{CONFIG.TASKINGAI_INFERENCE_URL}/v1/caches", |
| 58 | ) |
| 59 | response_wrapper = ResponseWrapper(response.status, await response.json()) |
| 60 | check_http_error(response_wrapper) |
| 61 | response_data = response_wrapper.json()["data"] |
| 62 | |
| 63 | model_schemas = [ModelSchema.build(model_schema_data) for model_schema_data in response_data["model_schemas"]] |
| 64 | model_schemas.sort(key=lambda x: x.model_schema_id) |
| 65 | |
| 66 | providers = [] |
| 67 | for provider_data in response_data["providers"]: |
| 68 | num_model_schemas = len( |
| 69 | [ |
| 70 | model_schema |
| 71 | for model_schema in model_schemas |
| 72 | if model_schema.provider_id == provider_data["provider_id"] |
| 73 | ] |
| 74 | ) |
| 75 | model_types = list( |
| 76 | set( |
| 77 | [ |
| 78 | model_schema.type |
| 79 | for model_schema in model_schemas |
| 80 | if model_schema.provider_id == provider_data["provider_id"] |
| 81 | # and model_schema.type != ModelType.WILDCARD |
| 82 | ] |
| 83 | ) |
| 84 | ) |
| 85 | provider = Provider.build(provider_data, num_model_schemas, model_types) |
| 86 | providers.append(provider) |
| 87 | |
| 88 | # put pinned providers at the front and sort the rest by provider_id |
| 89 | providers.sort(key=sort_providers) |
| 90 | |
| 91 | i18n_dict = response_data["i18n"] |
| 92 |
no test coverage detected