codestral / app.py
Pedro O. Acosta
Initial commit
6dfd948
import json
from typing import Optional, List, Any
import requests
import gradio as gr
def chat_with_mistral(
message: str,
history: List[Any],
api_key: str,
temperature: float = 0.5
) -> str:
"""Send chat message to Mistral API and return response."""
if not api_key:
return "Please provide an API key."
try:
response = requests.post(
"https://codestral.mistral.ai/v1/chat/completions",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
},
json={
"model": "codestral-latest",
"messages": [{"role": "user", "content": message}],
"temperature": temperature
},
timeout=10
)
response.raise_for_status()
return response.json()["choices"][0]["message"]["content"]
except Exception as e:
return f"Error: {str(e)}"
demo = gr.ChatInterface(
fn=chat_with_mistral,
title="Codestral Chat",
description="Your conversations are private. No data is saved or transmitted. More info at [Codestral](https://docs.mistral.ai/capabilities/code_generation/#codestral)",
additional_inputs=[
gr.Textbox(label="API Key", type="password", placeholder="Enter your API key"),
gr.Slider(minimum=0, maximum=1, value=0.5, label="Temperature")
],
type="messages"
)
if __name__ == "__main__":
demo.launch()