[pycharm] PY-70369 HF cache management MVP - turned ON + minor fixes

GitOrigin-RevId: 6427d4cd7726fc54086ff6ef0f83572c334594f0
This commit is contained in:
Bogdan.Kirilenko
2024-06-24 23:10:16 +02:00
committed by intellij-monorepo-bot
parent ddaee68015
commit d458fb9e65
3 changed files with 16 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.python.community.impl.huggingFace.api
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.node.ArrayNode
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
@@ -58,6 +59,16 @@ object HuggingFaceApi {
return nextLinkMatch?.groupValues?.get(1)
}
suspend fun fetchDataForSingleModel(modelId: String): HuggingFaceEntityBasicApiData? {
val modelUrl = HuggingFaceURLProvider.fetchApiDataForModel(modelId)
val response = HuggingFaceHttpClient.downloadContentAndHeaders(modelUrl.toString()).getOrNull()
return response?.content?.let { json ->
val objectMapper = ObjectMapper().registerKotlinModule()
val jsonObject: JsonNode = objectMapper.readTree(json)
objectMapper.treeToValue(jsonObject, HuggingFaceEntityBasicApiData::class.java).copy(kind = HuggingFaceEntityKind.MODEL)
}
}
private fun parseBasicEntityData(
endpointKind: HuggingFaceEntityKind,
json: String

View File

@@ -28,8 +28,9 @@ object HuggingFaceHttpClient {
val linkHeader = connection.getHeaderField("Link")
connection.disconnect()
HfHttpResponseWithHeaders(content, linkHeader)
}.onFailure {
thisLogger().warn("Failed to download: $url", it)
}
//}.onFailure {
// thisLogger().warn("Failed to download: $url", it)
//}
}
}

View File

@@ -76,6 +76,8 @@ object HuggingFaceURLProvider {
return URL("$baseURL/api/models?$allParameters")
}
fun fetchApiDataForModel(modelId: String) = URL("$baseURL/api/models/$modelId")
fun fetchApiDataUrl(
entityKind: HuggingFaceEntityKind,
limit: Int = HuggingFaceConstants.HF_API_FETCH_PAGE_SIZE,