DevCode / app.py
sudiptaverse's picture
Upload app.py with huggingface_hub
0b2f784 verified
raw
history blame
1.34 kB
from fastapi import FastAPI
from langserve import add_routes
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_huggingface import HuggingFacePipeline
from fastapi.middleware.cors import CORSMiddleware
import torch
app = FastAPI(
title="Phi-3 Code Explainer API",
description="Explains Python code using the Phi-3 Mini model and LangChain.",
version="1.0"
)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
model_id = "microsoft/phi-3-mini-4k-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype=torch.float16, device_map="auto"
)
generator = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
max_new_tokens=256,
return_full_text=False,
do_sample=False
)
llm = HuggingFacePipeline(pipeline=generator)
prompt = ChatPromptTemplate.from_template(
"### Instruction:\nExplain this Python code step-by-step:\nUse code with caution\n{code}\n\n### Explanation:"
)
parser = StrOutputParser()
chain = prompt | llm | parser
add_routes(app, chain, path="/explain")