|
import requests |
|
import os |
|
HF_API_KEY = os.getenv("HUGGINGFACE_API_KEY",) |
|
|
|
def call_llvm_model(prompt): |
|
llvm_model_url = "https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.3/v1/chat/completions" |
|
payload = { |
|
"model": "mistralai/Mistral-7B-Instruct-v0.3", |
|
"messages": [ |
|
{ |
|
"role": "user", |
|
"content": prompt, |
|
} |
|
], |
|
"max_tokens": 500, |
|
"stream": False |
|
} |
|
headers = { |
|
"Authorization": f"Bearer {HF_API_KEY}", |
|
"content-type": "application/json" |
|
} |
|
|
|
response = requests.post(llvm_model_url, json=payload, headers=headers) |
|
|
|
response = response.json() |
|
return response['choices'][0]['message']['content'] |
|
|
|
|
|
def generate_clothing_suggestion(weather_data): |
|
prompt = f""" |
|
Given the following weather conditions: |
|
Temperature: {weather_data['temperature']}°C |
|
Weather: {weather_data['weather']} ({weather_data['description']}) |
|
Humidity: {weather_data['humidity']}% |
|
Wind Speed: {weather_data['wind_speed']} m/s |
|
|
|
Suggest appropriate clothing to wear, including top and bottom. |
|
""" |
|
|
|
return call_llvm_model(prompt) |
|
|
|
def inference(weather_data): |
|
try: |
|
clothing_suggestion = generate_clothing_suggestion(weather_data) |
|
return {"clothing_suggestion": clothing_suggestion} |
|
except Exception as e: |
|
return {"error": str(e)} |
|
|
|
|
|
def run(data): |
|
weather_data = data.get("weather_data", {}) |
|
if not weather_data: |
|
return {"error": "No weather data provided"} |
|
|
|
result = inference(weather_data) |
|
return result |