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 base64import tempfilefrom 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