embeddings-and-search
SkillSearchUse when generating embeddings, calling the 12 web-search providers, or running OCR over documents with the 4 OCR providers through liter-llm. Covers embed, search, and ocr methods plus reranking.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the embeddings-and-search skill
What this skill tells your AI
The instructions your AI receives, as published by xberg-io/liter-llm in plugin/skills/embeddings-and-search/SKILL.md and read by ahel’s review.
Embeddings and Search
liter-llm exposes embeddings, web search (12 providers), OCR (4 providers), and
reranking through the same provider/model routing convention.
Embeddings
import asyncio, os
from liter_llm import create_client
from liter_llm._internal_bindings import EmbeddingRequest
async def main() -> None:
client = create_client(api_key=os.environ["OPENAI_API_KEY"])
request = EmbeddingRequest.from_json(
'{"model":"openai/text-embedding-3-small","input":["first document","second document"]}'
)
response = await client.embed(request)
for item in response.data:
print(len(item.embedding))
asyncio.run(main())
Many embedding models support dimension selection and base64 output; set
dimensions / encoding_format in the request where the provider allows it.
Web search (12 providers)
from liter_llm._internal_bindings import SearchRequest
client = create_client(api_key=os.environ["BRAVE_API_KEY"])
request = SearchRequest.from_json(
'{"model":"brave/web-search","query":"What is the Rust programming language?","max_results":5}'
)
response = await client.search(request)
for result in response.results:
print(result.title, result.url)
OCR (4 providers)
from liter_llm._internal_bindings import OcrRequest
client = create_client(api_key=os.environ["MISTRAL_API_KEY"])
request = OcrRequest.from_json(
'{"model":"mistral/mistral-ocr-latest",'
'"document":{"type":"document_url","url":"https://example.com/invoice.pdf"}}'
)
response = await client.ocr(request)
for page in response.pages:
print(page.index, page.markdown[:100])
Reranking
Build a RerankRequest (model, query, documents) and call client.rerank(request)
to score and order candidate documents against a query for retrieval pipelines —
combine it with embed for hybrid retrieval. Each result carries index and
relevance_score. Routing follows the same provider/model convention.
Notes
- Search and OCR providers each need their own API key (e.g.
BRAVE_API_KEY,MISTRAL_API_KEY); read them from env vars. - See the upstream provider reference for the full list of the 12 search and 4 OCR backends and their model identifiers.
Signals
- GitHub stars
- 252
- Forks
- 21
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
embeddings-and-search- Source
- github.com/xberg-io/liter-llm