8 Downloads Updated 2 months ago
Turkish language embedding model accessible via Ollama-compatible API.
pip install sentence-transformers requests
import requests
response = requests.post(
"http://your-server:11435/api/embeddings",
json={"prompt": "Türkçe metin"}
)
embedding = response.json()["embedding"]
print(f"Dimension: {len(embedding)}")
curl -X POST http://your-server:11435/api/embeddings \
-H "Content-Type: application/json" \
-d '{"prompt": "Merhaba dünya"}'
Run the provided pipeline script. It will:
- Download trmteb/turkish-embedding-model from Hugging Face
- Start Flask bridge API on port 11435
- Expose /api/embeddings endpoint
Endpoint: http://<your-ip>:11435/api/embeddings
If bridge mode is not suitable, use GGUF fallback:
- Model registered in Ollama as turkish-embed
- Standard Ollama API on port 11434
curl -X POST http://your-server:11434/api/embeddings \
-d '{"model": "turkish-embed", "prompt": "Türkçe metin"}'
POST /api/embeddings
{
"prompt": "Your text here"
}
{
"embedding": [0.123, -0.456, 0.789, ...]
}
200: Success400: Missing prompt500: Server errorimport requests
import numpy as np
def get_embedding(text):
resp = requests.post(
"http://your-server:11435/api/embeddings",
json={"prompt": text}
)
return np.array(resp.json()["embedding"])
# Calculate similarity
query_emb = get_embedding("Yapay zeka nedir?")
doc_emb = get_embedding("Yapay zeka, makinelerin öğrenmesidir.")
similarity = np.dot(query_emb, doc_emb) / (
np.linalg.norm(query_emb) * np.linalg.norm(doc_emb)
)
print(f"Similarity: {similarity:.4f}")
const axios = require('axios');
async function getEmbedding(text) {
const response = await axios.post(
'http://your-server:11435/api/embeddings',
{ prompt: text }
);
return response.data.embedding;
}
// Usage
const embedding = await getEmbedding('Merhaba dünya');
console.log(`Dimension: ${embedding.length}`);
from langchain.embeddings.base import Embeddings
import requests
class TurkishBERTEmbeddings(Embeddings):
def __init__(self, api_url="http://your-server:11435/api/embeddings"):
self.api_url = api_url
def embed_documents(self, texts):
return [self.embed_query(text) for text in texts]
def embed_query(self, text):
resp = requests.post(
self.api_url,
json={"prompt": text}
)
return resp.json()["embedding"]
# Usage
embeddings = TurkishBERTEmbeddings()
vector = embeddings.embed_query("Türkçe metin")
from llama_index.embeddings import BaseEmbedding
import requests
class TurkishBERTEmbedding(BaseEmbedding):
def __init__(self, api_url="http://your-server:11435/api/embeddings"):
self.api_url = api_url
super().__init__()
def _get_query_embedding(self, query: str):
resp = requests.post(self.api_url, json={"prompt": query})
return resp.json()["embedding"]
def _get_text_embedding(self, text: str):
return self._get_query_embedding(text)
# Usage
embed_model = TurkishBERTEmbedding()
vector = embed_model.get_query_embedding("Türkçe sorgu")
import time
start = time.time()
response = requests.post(url, json={"prompt": text})
latency = time.time() - start
print(f"Latency: {latency:.3f}s")
try:
response = requests.post(url, json={"prompt": text}, timeout=10)
response.raise_for_status()
embedding = response.json()["embedding"]
except requests.exceptions.Timeout:
print("Request timed out")
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")
FROM python:3.11-slim
WORKDIR /app
RUN pip install sentence-transformers flask huggingface_hub
COPY bridge_api.py .
ENV HF_TOKEN=your_token_here
ENV MODEL_NAME=trmteb/turkish-embedding-model
EXPOSE 11435
CMD ["python", "bridge_api.py"]
netstat -tuln | grep 11435trmteb/turkish-embedding-modelIf bridge API doesn’t fit your use case:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('trmteb/turkish-embedding-model')
embedding = model.encode("Türkçe metin")
Use Ollama’s native embedding models:
ollama run turkish-embed "Türkçe metin"
Check the original model repository for licensing terms.
For issues related to: - Model quality: Contact original model authors - API/Bridge: Open issue in this repository - Ollama integration: Check Ollama documentation