samuel-moreira commited on
Commit
7850b02
1 Parent(s): c9152d6

Upload 4 files

Browse files
Files changed (5) hide show
  1. .gitattributes +1 -0
  2. Dockerfile +12 -0
  3. main.py +32 -0
  4. requirements.txt +7 -0
  5. 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