File size: 1,487 Bytes
5d0f8a4
23bb044
5d0f8a4
 
ce7db72
5d0f8a4
 
 
 
 
ce7db72
5d0f8a4
ce7db72
 
5d0f8a4
ce7db72
5d0f8a4
 
ce7db72
 
 
0f2551f
 
5d0f8a4
 
0f2551f
ce7db72
5d0f8a4
 
 
ce7db72
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from ctransformers import AutoModelForCausalLM
from fastapi import FastAPI
from pydantic import BaseModel


llm = AutoModelForCausalLM.from_pretrained(
    "zephyr-7b-beta.Q4_K_S.gguf",
    model_type='llama3',
    max_new_tokens=2000,
    threads=10,
    context_length = 4096)

#Pydantic object
class validation(BaseModel):
    prompt: str
#Fast API
app = FastAPI()

@app.post("/llm_on_cpu")
async def stream(item: validation):
    print("Start")
    system_prompt = """Você lê textos e padroniza em saída JSON.
Leia o currículo e classifique as entidades apropriadamente.
Retorne APENAS O DICIONÁRIO JSON e nada mais. 
O nome dos campos sempre deve estar em português do Brasil.
Respeite o nome dos campos do dicionário JSON. São eles: Nome, Email, Telefone, Localização, Experiência(e suas subchaves são Cargo, Empresa, Descrição, Data de Início e Data de Término), Formação(e suas subchaves são Formação, Instituição e Data de Conclusão) e Conhecimentos(suas subchaves são Conhecimento e Instituição).
Geralmente a descrição da experiência vem descrita logo após o cargo. Procure e inclua esses dados no campo Descrição de cada Experiência.]
Acrescente todas as informações que encontrar, todas devem ser classificadas nos seus respectivos campos. Não deixe passar nada.
Caso não encontre alguma informação, retorne o campo com Null."""
    E_INST = "</s>"
    prompt = f"{system_prompt}{E_INST}\n{item.prompt}{E_INST}"
    return llm(prompt)