LLM / endpoints.py
moamen270's picture
Update endpoints.py
8e241f0
raw
history blame contribute delete
2.79 kB
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
import torch
import os
import requests
# from langchain.llms.huggingface_pipeline import HuggingFacePipeline
# API_URL = "https://api-inference.huggingface.co/models/mistralai/Mistral-7B-v0.1"
# headers = {"Authorization": f"Bearer {key}"}
# def query(payload):
# response = requests.post(API_URL, headers=headers, json=payload)
# return response.json()
def LLM(llm_name, length):
print(llm_name)
tokenizer = AutoTokenizer.from_pretrained(llm_name)
model = AutoModelForCausalLM.from_pretrained(llm_name,trust_remote_code=True)
pipe = pipeline("text-generation",
model=model,
tokenizer=tokenizer,
max_length=length,
do_sample=True,
top_p=0.95,
repetition_penalty=1.2,
)
return pipe
# tokenizer = AutoTokenizer.from_pretrained("WizardLM/WizardCoder-1B-V1.0")
# base_model = AutoModelForCausalLM.from_pretrained("WizardLM/WizardCoder-1B-V1.0")
# Mistral 7B
# mistral_llm = LLM("mistralai/Mistral-7B-v0.1",30000)
# mistral_llm = LLM("microsoft/phi-2",2000)
# WizardCoder 13B
# wizard_llm = LLM("WizardLM/WizardCoder-Python-13B-V1.0",8000)
wizard_llm = LLM("WizardLM/WizardCoder-1B-V1.0",4000)
# hf_llm = HuggingFacePipeline(pipeline=pipe)
def ask_model(model, prompt):
# if(model == 'mistral'):
# result = mistral_llm(prompt)
# return result
if(model == 'wizard'):
result = wizard_llm(prompt)
return result
key = os.environ.get("huggingface_key")
openai_api_key = os.environ.get("openai_key")
app = FastAPI(openapi_url="/api/v1/LLM/openapi.json", docs_url="/api/v1/LLM/docs")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
allow_credentials=True,
)
@app.get("/")
def root():
return {"message": "R&D LLM API"}
# @app.get("/get")
# def get():
# result = pipe("name 5 programming languages",do_sample=False)
# print(result)
# return {"message": result}
@app.post("/ask_llm")
async def ask_llm_endpoint(model:str, prompt: str):
result = ask_model(model,prompt)
return {"result": result}
# APIs
# @app.post("/ask_HFAPI")
# def ask_HFAPI_endpoint(prompt: str):
# result = query(prompt)
# return {"result": result}
from langchain.llms import OpenAI
llm = OpenAI(model_name="text-davinci-003", temperature=0.5, openai_api_key=openai_api_key)
@app.post("/ask_GPT")
def ask_GPT_endpoint(prompt: str):
result = llm(prompt)
return {"result": result}