Spaces:
Sleeping
Sleeping
samuel-moreira
commited on
Commit
•
7850b02
1
Parent(s):
c9152d6
Upload 4 files
Browse files- .gitattributes +1 -0
- Dockerfile +12 -0
- main.py +32 -0
- requirements.txt +7 -0
- zephyr-7b-beta.Q4_K_S.gguf +3 -0
.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 |
+
zephyr-7b-beta.Q4_K_S.gguf filter=lfs diff=lfs merge=lfs -text
|
Dockerfile
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM python:3.9
|
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 ./zephyr-7b-beta.Q4_K_S.gguf /code/zephyr-7b-beta.Q4_K_S.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 |
+
"zephyr-7b-beta.Q4_K_S.gguf",
|
8 |
+
model_type='llama3',
|
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)
|
requirements.txt
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
python-multipart
|
2 |
+
fastapi
|
3 |
+
pydantic
|
4 |
+
uvicorn
|
5 |
+
requests
|
6 |
+
python-dotenv
|
7 |
+
ctransformers
|
zephyr-7b-beta.Q4_K_S.gguf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:cafa0b85b2efc15ca33023f3b87f8d0c44ddcace16b3fb608280e0eb8f425cb1
|
3 |
+
size 4140373696
|