Usage Examples
This page provides practical usage examples for making queries with the NexosAI SDK, based on real Jupyter Notebook workflows.
Each endpoint can prepare, transform and send requests seamlessly, by use of the RequestMaker object,
available under the request attribute of each endpoint.
Chat Completions: Simple Request
Send a basic message to the chat completions endpoint:
from nexosapi.api.endpoints import chat
params = {
"model": "your-model-id",
"messages": [{"content": "Hello, how are you?", "name": "Kamil"}],
}
chat.completions.request.prepare(params)
print(chat.completions.request.dump())
# Send the request (async, Jupyter supports top-level await)
if chat.completions.request.pending is None:
chat.completions.request.reload_last()
response = await chat.completions.request.send()
print(response.model_dump())
Chat Completions: Web Search Tool Example
Use the web search tool to fetch live data (e.g., currency exchange rate):
from nexosapi.api.endpoints import chat
# Prepare a request with system instructions
tool_request = {
"model": "your-model-id",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant that provides current currency prices using Google search."
},
],
}
chat.completions.request.prepare(tool_request)
chat.completions.request.with_search_engine_tool(options={"search_context_size": "medium"})
print(chat.completions.request.dump())
# Send and print response
chat.completions.request.reload_last()
tool_response = await chat.completions.request.send()
print(tool_response.model_dump())
Chat Completions: Image Query Example
Identify an object from an image and get a structured response:
from nexosapi.api.endpoints import chat
from IPython.display import Image, display
from requests import request
from pydantic import BaseModel
import json
IMAGE_URL = "https://sketchok.com/images/articles/06-anime/003-pokemon/01/10.jpg"
response = request("GET", IMAGE_URL)
if response.status_code == 200:
display(Image(response.content, width=300, height=300))
params = {
"model": "your-model-id",
"messages": [{"content": "Identify the Pokémon in the image."}],
}
chat.completions.request.prepare(params)
chat.completions.request.add_image_to_last_message(image_url=IMAGE_URL)
chat.completions.request.with_search_engine_tool(options={"search_context_size": "medium"})
class PokemonIdentificationResult(BaseModel):
name: str
confidence: float
reasons: list[str]
chat.completions.request.set_response_structure(PokemonIdentificationResult)
print(chat.completions.request.dump())
if chat.completions.request.pending is None:
chat.completions.request.reload_last()
response = await chat.completions.request.send()
# Validate response with Pydantic
response_content = response.choices[0].message.content
deserialized_content = json.loads(response_content)
response_data = PokemonIdentificationResult(**deserialized_content)
Chat Completions: Ask for Weather
Get the current weather in a city using the web search tool:
from nexosapi.api.endpoints import chat
params = {
"model": "your-model-id",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant that provides current weather information using Google search."
},
{
"role": "user",
"content": "What's the weather in Warsaw today?"
},
],
}
chat.completions.request.prepare(params)
chat.completions.request.with_search_engine_tool(options={"search_context_size": "medium"})
chat.completions.request.reload_last()
response = await chat.completions.request.send()
Chat Completions: Summarize a News Article
Summarize the content of a news article using a web search and structured response:
from nexosapi.api.endpoints import chat
from pydantic import BaseModel
import json
NEWS_URL = "https://www.bbc.com/news/world-europe-66717489"
params = {
"model": "your-model-id",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant that summarizes news articles."
},
{
"role": "user",
"content": f"Summarize the main points of this article: {NEWS_URL}"
},
],
}
chat.completions.request.prepare(params)
chat.completions.request.with_search_engine_tool(options={"search_context_size": "large"})
class NewsSummary(BaseModel):
headline: str
summary: str
url: str
chat.completions.request.set_response_structure(NewsSummary)
chat.completions.request.reload_last()
response = await chat.completions.request.send()
response_content = response.choices[0].message.content
deserialized_content = json.loads(response_content)
news_data = NewsSummary(**deserialized_content)
Chat Completions: Extract Entities from Text
Extract named entities from a user-provided text and return them in a structured format:
from nexosapi.api.endpoints import chat
from pydantic import BaseModel
import json
params = {
"model": "your-model-id",
"messages": [
{
"role": "system",
"content": "You are an assistant that extracts named entities from text."
},
{
"role": "user",
"content": "Barack Obama was born in Hawaii and served as the 44th President of the United States."
},
],
}
chat.completions.request.prepare(params)
class EntityExtractionResult(BaseModel):
persons: list[str]
locations: list[str]
organizations: list[str]
chat.completions.request.set_response_structure(EntityExtractionResult)
print(chat.completions.request.dump())
chat.completions.request.reload_last()
response = await chat.completions.request.send()
response_content = response.choices[0].message.content
deserialized_content = json.loads(response_content)
entities = EntityExtractionResult(**deserialized_content)