from typing import List import gradio as gr import spaces import numpy as np from sentence_transformers import SentenceTransformer model = SentenceTransformer("nomic-ai/nomic-embed-text-v1.5", trust_remote_code=True) def embed(document: str) -> List[float]: """ Embed text using the Nomic AI model, normalize the embedding, and return a 768-dimension vector. Args: document (str): The input text to embed. Returns: List[float]: The normalized embedding vector (length 768). """ embedding = model.encode(document) normalized_embedding = embedding / np.linalg.norm(embedding) return normalized_embedding.tolist() with gr.Blocks() as app: text_input = gr.Textbox(label="Enter text to embed") output = gr.JSON(label="Normalized Text Embedding") text_input.submit(embed, inputs=text_input, outputs=output) if __name__ == '__main__': app.queue().launch(server_name="0.0.0.0", show_error=True, server_port=7860, mcp_server=True)