|
from typing import Any, Dict, List, Optional |
|
|
|
import gradio as gr |
|
from core import MCPyLate |
|
from huggingface_hub import snapshot_download |
|
|
|
""" |
|
MCPyLate Server |
|
A Model Context Protocol server that provides search functionality using PyLate. |
|
""" |
|
|
|
snapshot_download( |
|
repo_id="lightonai/leetcode_reasonmoderncolbert", |
|
local_dir="indexes/", |
|
repo_type="dataset", |
|
) |
|
mcpylate = MCPyLate() |
|
|
|
|
|
def pylate_search_leetcode( |
|
query: str, k: int = 10, index_name: Optional[str] = None |
|
) -> List[Dict[str, Any]]: |
|
""" |
|
Search the PyLate with multi-vector models in the leetcode collection containing code problems solutions and return top-k hits |
|
Args: |
|
query: Search query string |
|
k: Number of results to return (default: 10) |
|
index_name: Name of index to search (default: use default index) |
|
Returns: |
|
List of search results with docid, score, text snippet, and index name |
|
""" |
|
return mcpylate.search(query, k) |
|
|
|
|
|
demo = gr.Interface( |
|
fn=pylate_search_leetcode, |
|
inputs=["text"], |
|
outputs="text", |
|
title="LeetCode Search", |
|
description="Search in leetcode database index using PyLate", |
|
) |
|
|
|
demo.launch(mcp_server=True, share=True) |
|
|