Skip to content

OpenAI-compatible file input examples for a local mistral.rs server

OpenAI-compatible file input examples for a local mistral.rs server.

Start a server first: mistralrs serve —agent -m

"""OpenAI-compatible file input examples for a local mistral.rs server.
Start a server first:
mistralrs serve --agent -m <model>
"""
import base64
import tempfile
from pathlib import Path
from openai import OpenAI
client = OpenAI(base_url="http://localhost:1234/v1", api_key="not-used")
def main() -> None:
with tempfile.TemporaryDirectory() as tmp:
root = Path(tmp)
csv_path = root / "sales.csv"
csv_path.write_text(
"region,revenue\nnorth,120\nsouth,95\nwest,180\n",
encoding="utf-8",
)
with csv_path.open("rb") as file:
uploaded = client.files.create(file=file, purpose="user_data")
print(f"Uploaded file: {uploaded.id} ({uploaded.filename})")
response = client.responses.create(
model="default",
input=[
{
"role": "user",
"content": [
{"type": "input_file", "file_id": uploaded.id},
{
"type": "input_text",
"text": "Which region has the highest revenue?",
},
],
}
],
)
print("\nResponses result:")
print(response.output_text)
json_path = root / "report.json"
json_path.write_text(
'{"warnings": 2, "errors": 0, "status": "pass"}',
encoding="utf-8",
)
data = base64.b64encode(json_path.read_bytes()).decode("utf-8")
completion = client.chat.completions.create(
model="default",
messages=[
{
"role": "user",
"content": [
{
"type": "file",
"file": {
"filename": json_path.name,
"file_data": f"data:application/json;base64,{data}",
},
},
{"type": "text", "text": "Summarize this report."},
],
}
],
)
print("\nChat result:")
print(completion.choices[0].message.content)
if __name__ == "__main__":
main()

Source: examples/server/file_inputs.py