PYTHON - MISTRAL - API
Simon-Pierre Boucher
2024-09-14
In [1]:
import os
import requests
import json
def call_mistral_api(
model,
messages,
temperature=0.7,
top_p=1,
max_tokens=None,
min_tokens=None,
stream=False,
stop=None,
random_seed=None,
response_format=None,
tools=None,
tool_choice="auto",
safe_prompt=False
):
# Get the API key from environment variables
api_key = os.getenv("MISTRAL_API_KEY")
if not api_key:
raise ValueError("API key not found in environment variables. Please set MISTRAL_API_KEY.")
url = "https://api.mistral.ai/v1/chat/completions"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
body = {
"model": model,
"messages": messages,
"temperature": temperature,
"top_p": top_p,
"stream": stream,
"tool_choice": tool_choice,
"safe_prompt": safe_prompt
}
# Add optional parameters if they are not None
if max_tokens is not None:
body["max_tokens"] = max_tokens
if min_tokens is not None:
body["min_tokens"] = min_tokens
if stop is not None:
body["stop"] = stop
if random_seed is not None:
body["random_seed"] = random_seed
if response_format is not None:
body["response_format"] = response_format
if tools is not None:
body["tools"] = tools
response = requests.post(url, headers=headers, data=json.dumps(body))
if response.status_code != 200:
raise ValueError(f"API request failed: {response.text}")
result = response.json()
return result
In [2]:
# Define the messages
messages = [
{"role": "user", "content": "give me a list of gift ideas for my girlfriend"}
]
In [3]:
# Call the function
response = call_mistral_api(
model="mistral-large-latest", # Replace with the model ID you wish to use
messages=messages,
temperature=0.7,
top_p=1,
max_tokens=2024
)
# Display the assistant's response
print(response['choices'][0]['message']['content'])