feat: include Hugging Face model search

This commit is contained in:
Hermes Agent
2026-08-28 11:33:41 +10:00
parent 2612e90dbf
commit 1a54b41c33
6 changed files with 187 additions and 6 deletions
+38
View File
@@ -89,6 +89,44 @@ class ValidationHarnessTests(unittest.TestCase):
self.assertEqual(response, {"jobs": active})
listed.assert_called_once_with(active_only=True, conversation_id="conversation", limit=20)
def test_huggingface_search_normalizes_public_model_metadata(self):
with patch.object(
api,
"_json_list_request",
return_value=[
{
"id": "Qwen/Qwen3.8-Flash-Next",
"downloads": 4810,
"likes": 3966,
"pipeline_tag": "image-text-to-text",
"library_name": "transformers",
"lastModified": "2026-08-27T00:00:00.000Z",
"sha": "abc123",
"tags": ["qwen", "conversational"],
}
],
):
results = api._search_huggingface("Qwen3.8-Flash-Next", limit=10)
self.assertEqual(len(results), 1)
model = results[0]
self.assertEqual(model["name"], "Qwen/Qwen3.8-Flash-Next")
self.assertEqual(model["source"], "huggingface")
self.assertEqual(model["hf_url"], "https://huggingface.co/Qwen/Qwen3.8-Flash-Next")
self.assertIn("vision", model["capabilities"])
self.assertFalse(model["downloadable"])
def test_catalog_search_combines_ollama_and_huggingface_sources(self):
ollama = [{"name": "qwen3.8:latest", "source": "catalog"}]
huggingface = [{"name": "Qwen/Qwen3.8-Flash-Next", "source": "huggingface"}]
with patch.object(api, "_search_ollama_catalog", return_value=ollama) as ollama_search, patch.object(
api, "_search_huggingface", return_value=huggingface
) as hf_search:
response = api.catalog_search("Qwen3.8", limit=10)
self.assertEqual(response["results"], ollama + huggingface)
self.assertEqual(response["sources"], ["ollama", "huggingface"])
ollama_search.assert_called_once_with("Qwen3.8", limit=10)
hf_search.assert_called_once_with("Qwen3.8", limit=10)
def test_primary_draft_validators_and_primary_compilation_produce_one_answer(self):
body = api.ChatRequest(
primary_model="primary",