lfbarbosa commited on
Commit
b6855d7
·
verified ·
1 Parent(s): 1352d28

Upload 3 files

Browse files

versão 1 colocando a poc para funcionar

Files changed (3) hide show
  1. app.py +39 -0
  2. requirements.txt +5 -0
  3. setup.sh +3 -0
app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from pydantic import BaseModel
3
+ from transformers import LlamaForCausalLM, LlamaTokenizer
4
+ import torch
5
+
6
+ # Carregar o modelo LLaMA (escolha um modelo público que se ajuste às suas necessidades)
7
+ model_name = "NousResearch/Llama-2-7b-hf" # Ou outro modelo LLaMA de sua escolha
8
+ tokenizer = LlamaTokenizer.from_pretrained(model_name)
9
+ model = LlamaForCausalLM.from_pretrained(model_name)
10
+
11
+ # Inicializar FastAPI
12
+ app = FastAPI()
13
+
14
+ # Modelo de dados Pydantic para validação da entrada
15
+ class QueryRequest(BaseModel):
16
+ description: str
17
+ database_schema: str
18
+
19
+ # Função para gerar consulta SQL
20
+ def generate_sql(description, database_schema):
21
+ prompt = f"""
22
+ Baseado no seguinte esquema de banco de dados:
23
+ {database_schema}
24
+
25
+ Escreva a consulta SQL para o seguinte pedido:
26
+ {description}
27
+ """
28
+
29
+ inputs = tokenizer(prompt, return_tensors="pt")
30
+ outputs = model.generate(**inputs, max_new_tokens=150)
31
+ sql_query = tokenizer.decode(outputs[0], skip_special_tokens=True)
32
+
33
+ return sql_query
34
+
35
+ # Endpoint de API para receber requisições e retornar a consulta SQL gerada
36
+ @app.post("/generate_sql/")
37
+ async def create_query(request: QueryRequest):
38
+ sql_query = generate_sql(request.description, request.database_schema)
39
+ return {"sql_query": sql_query}
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ torch
4
+ transformers
5
+ sentencepiece
setup.sh ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ # Arquivo setup.sh para iniciar o FastAPI com Uvicorn
2
+ pip install -r requirements.txt
3
+ uvicorn app:app --host 0.0.0.0 --port 7860