samuel-moreira commited on
Commit
e37f80e
·
verified ·
1 Parent(s): a227839

Upload 4 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ meta-llama-3-8b-instruct.Q2_K.gguf filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11
2
+
3
+ WORKDIR /code
4
+
5
+ COPY ./requirements.txt /code/requirements.txt
6
+
7
+ RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
8
+
9
+ COPY ./meta-llama-3-8b-instruct.Q2_K.gguf /codemeta-llama-3-8b-instruct.Q2_K.gguf
10
+ COPY ./main.py /code/main.py
11
+
12
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
main.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from ctransformers import AutoModelForCausalLM
2
+ from fastapi import FastAPI
3
+ from pydantic import BaseModel
4
+
5
+
6
+ llm = AutoModelForCausalLM.from_pretrained(
7
+ "meta-llama-3-8b-instruct.Q2_K.gguf",
8
+ model_type='llama',
9
+ max_new_tokens=3000,
10
+ threads=5,
11
+ context_length = 4096)
12
+
13
+ #Pydantic object
14
+ class validation(BaseModel):
15
+ prompt: str
16
+ #Fast API
17
+ app = FastAPI()
18
+
19
+ @app.post("/llm_on_cpu")
20
+ async def stream(item: validation):
21
+ system_prompt = """Leia o currículo e classifique as entidades no meu estilo.
22
+ Respeite o formato de saída JSON.
23
+ Retorne APENAS O DICIONÁRIO JSON e nada mais.
24
+ O nome dos campos sempre deve estar em português do Brasil.
25
+ Respeite o nome dos campos. 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).
26
+ 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.]
27
+ Acrescente todas as informações que encontrar, todas devem ser classificadas nos seus respectivos campos. Não deixe passar nada.
28
+ Caso não encontre alguma informação, retorne o campo com Null."""
29
+ E_INST = "</s>"
30
+ user = "<|user|>"
31
+ prompt = f"{system_prompt}{E_INST}\n{user}\n{item.prompt}{E_INST}"
32
+ return llm(prompt)
meta-llama-3-8b-instruct.Q2_K.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cfad79633c99f4c525d4e47c459769610f2e1d08f6a77f160c8e6dca57e4899b
3
+ size 3179131168
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python-multipart
2
+ fastapi
3
+ pydantic
4
+ uvicorn
5
+ requests
6
+ python-dotenv
7
+ ctransformers