import uvicorn | |
import json | |
import requests | |
from flask import Flask, request, jsonify | |
app = Flask(__name__) | |
rq = requests.sessions.Session() | |
model_names = [ | |
"meta-llama/Meta-Llama-3-70B-Instruct", | |
"meta-llama/Meta-Llama-3-8B-Instruct", | |
"mistralai/Mixtral-8x22B-Instruct-v0.1", | |
"mistralai/Mixtral-8x22B-v0.1", | |
"microsoft/WizardLM-2-8x22B", | |
"microsoft/WizardLM-2-7B", | |
"HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1", | |
"google/gemma-1.1-7b-it", | |
"databricks/dbrx-instruct", | |
"mistralai/Mixtral-8x7B-Instruct-v0.1", | |
"mistralai/Mistral-7B-Instruct-v0.2", | |
"meta-llama/Llama-2-70b-chat-hf", | |
"cognitivecomputations/dolphin-2.6-mixtral-8x7b", | |
"codellama/CodeLlama-70b-Instruct-hf" | |
] | |
def DeepinFra(Api:str, messages:list ,model:str, max_tokens: int = 512, temperature: float = 0.7): | |
url = "https://api.deepinfra.com/v1/openai/chat/completions" | |
headers ={ | |
"Authorization" : f"Bearer {Api}" | |
} | |
data = json.dumps( | |
{ | |
'model': model, | |
'messages': messages, | |
'temperature': temperature, | |
'max_tokens': max_tokens, | |
'stop': [], | |
'stream': False | |
}, separators=(',', ':') | |
) | |
try: | |
result = rq.post(url=url, headers=headers, data=data) | |
return result.json()['choices'][0]['message']['content'] | |
except: | |
return "Response content: " + result.text | |
def generate_text(): | |
data = request.json | |
message = data.get("message") | |
Api = data.get("api_key") | |
model_name = data.get("model_name", "mistralai/Mixtral-8x22B-Instruct-v0.1") | |
max_tokens = data.get("max_tokens", 512) | |
temperature = data.get("temperature", 0.7) | |
if not message or not Api: | |
return jsonify({"error": "Missing required fields"}), 400 | |
response = DeepinFra(Api=Api , messages=message, model=model_name, max_tokens=max_tokens, temperature=temperature) | |
return jsonify({"response": response}), 200 | |