Spaces:
Sleeping
Sleeping
Commit
·
f3a204b
1
Parent(s):
3b7e81b
IA -- Portfolio
Browse files- .gitattributes +2 -0
- app.py +12 -4
- config/prompt_gui.py +17 -9
- data/config.json +14 -28
- util/data_config.py +44 -11
.gitattributes
CHANGED
@@ -33,3 +33,5 @@ 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 |
+
venv/
|
37 |
+
.env
|
app.py
CHANGED
@@ -13,10 +13,8 @@ from config.prompt_gui import (
|
|
13 |
|
14 |
|
15 |
from util.data_config import extrair_dados_config
|
|
|
16 |
|
17 |
-
regras, desenvolvedor_name, country, name_gui, desenvolvedor_description = (
|
18 |
-
extrair_dados_config()
|
19 |
-
)
|
20 |
|
21 |
try:
|
22 |
with open("static/assets/js/script.js", "r", encoding="UTF-8") as js_file:
|
@@ -80,11 +78,21 @@ def respond(
|
|
80 |
data_atual=now.strftime("%d/%m/%Y %H:%M:%S"),
|
81 |
regras=regras,
|
82 |
desenvolvedor_name=desenvolvedor_name,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
desenvolvedor_description=desenvolvedor_description,
|
84 |
pais=country,
|
85 |
historico=historico.strip(),
|
86 |
mensagem=message,
|
87 |
-
|
|
|
|
|
|
|
88 |
|
89 |
messages: List[dict] = [{"role": "system", "content": prompt}]
|
90 |
response: str = ""
|
|
|
13 |
|
14 |
|
15 |
from util.data_config import extrair_dados_config
|
16 |
+
regras, desenvolvedor_name, desenvolvedor_nickname, desenvolvedor_function, desenvolvedor_github, desenvolvedor_portfolio, desenvolvedor_profile, desenvolvedor_email, desenvolvedor_resumo, desenvolvedor_description, name_gui, country = extrair_dados_config()
|
17 |
|
|
|
|
|
|
|
18 |
|
19 |
try:
|
20 |
with open("static/assets/js/script.js", "r", encoding="UTF-8") as js_file:
|
|
|
78 |
data_atual=now.strftime("%d/%m/%Y %H:%M:%S"),
|
79 |
regras=regras,
|
80 |
desenvolvedor_name=desenvolvedor_name,
|
81 |
+
desenvolvedor_nickname=desenvolvedor_nickname,
|
82 |
+
desenvolvedor_function=desenvolvedor_function,
|
83 |
+
desenvolvedor_github=desenvolvedor_github,
|
84 |
+
desenvolvedor_portfolio=desenvolvedor_portfolio,
|
85 |
+
desenvolvedor_profile=desenvolvedor_profile,
|
86 |
+
desenvolvedor_email=desenvolvedor_email,
|
87 |
+
desenvolvedor_resumo=" ".join(desenvolvedor_resumo),
|
88 |
desenvolvedor_description=desenvolvedor_description,
|
89 |
pais=country,
|
90 |
historico=historico.strip(),
|
91 |
mensagem=message,
|
92 |
+
)
|
93 |
+
|
94 |
+
print(prompt)
|
95 |
+
|
96 |
|
97 |
messages: List[dict] = [{"role": "system", "content": prompt}]
|
98 |
response: str = ""
|
config/prompt_gui.py
CHANGED
@@ -2,21 +2,25 @@
|
|
2 |
from langchain.prompts import PromptTemplate
|
3 |
|
4 |
|
5 |
-
|
6 |
def template_gui() -> str:
|
7 |
-
|
8 |
template: str = """
|
9 |
Descrição:
|
10 |
-
- Seu nome
|
11 |
-
- Você é {name}, uma IA programada para responder
|
12 |
- Hoje é {data_atual}. Aqui estão algumas regras que você deve seguir:
|
13 |
|
14 |
Regras:
|
15 |
{regras}
|
16 |
|
17 |
-
|
18 |
- Nome do desenvolvedor: {desenvolvedor_name}
|
19 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
- País de origem: {pais}
|
21 |
|
22 |
Histórico de conversa:
|
@@ -25,10 +29,8 @@ def template_gui() -> str:
|
|
25 |
Usuário: {mensagem}
|
26 |
IA-GUI:
|
27 |
"""
|
28 |
-
|
29 |
return template
|
30 |
|
31 |
-
|
32 |
def prompt_template_gui(template_gui: str) -> str:
|
33 |
prompt_template: PromptTemplate = PromptTemplate(
|
34 |
input_variables=[
|
@@ -36,7 +38,13 @@ def prompt_template_gui(template_gui: str) -> str:
|
|
36 |
"data_atual",
|
37 |
"regras",
|
38 |
"desenvolvedor_name",
|
39 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
"pais",
|
41 |
"historico",
|
42 |
"mensagem",
|
|
|
2 |
from langchain.prompts import PromptTemplate
|
3 |
|
4 |
|
|
|
5 |
def template_gui() -> str:
|
|
|
6 |
template: str = """
|
7 |
Descrição:
|
8 |
+
- Seu nome é: '{name}'
|
9 |
+
- Você é {name}, uma IA programada para responder perguntas sobre o programador wendel alves (wendellast), fale tudo que vc souber sobre ele, mas nao invente dados, apenas responda o que vc sabe.
|
10 |
- Hoje é {data_atual}. Aqui estão algumas regras que você deve seguir:
|
11 |
|
12 |
Regras:
|
13 |
{regras}
|
14 |
|
15 |
+
Sobre Wendel Alves:
|
16 |
- Nome do desenvolvedor: {desenvolvedor_name}
|
17 |
+
- Apelido: {desenvolvedor_nickname}
|
18 |
+
- Função: {desenvolvedor_function}
|
19 |
+
- GitHub: {desenvolvedor_github}
|
20 |
+
- Portfolio: {desenvolvedor_portfolio}
|
21 |
+
- Perfil: {desenvolvedor_profile}
|
22 |
+
- Email: {desenvolvedor_email}
|
23 |
+
- Descrição: {desenvolvedor_resumo}
|
24 |
- País de origem: {pais}
|
25 |
|
26 |
Histórico de conversa:
|
|
|
29 |
Usuário: {mensagem}
|
30 |
IA-GUI:
|
31 |
"""
|
|
|
32 |
return template
|
33 |
|
|
|
34 |
def prompt_template_gui(template_gui: str) -> str:
|
35 |
prompt_template: PromptTemplate = PromptTemplate(
|
36 |
input_variables=[
|
|
|
38 |
"data_atual",
|
39 |
"regras",
|
40 |
"desenvolvedor_name",
|
41 |
+
"desenvolvedor_nickname",
|
42 |
+
"desenvolvedor_function",
|
43 |
+
"desenvolvedor_github",
|
44 |
+
"desenvolvedor_portfolio",
|
45 |
+
"desenvolvedor_profile",
|
46 |
+
"desenvolvedor_email",
|
47 |
+
"desenvolvedor_resumo",
|
48 |
"pais",
|
49 |
"historico",
|
50 |
"mensagem",
|
data/config.json
CHANGED
@@ -3,16 +3,18 @@
|
|
3 |
|
4 |
"name": "Gui",
|
5 |
"version": 3.2,
|
6 |
-
"description": "Você é gui uma ia programada pra responder as pessoas
|
7 |
"developers Hublast": {
|
8 |
"wendellast": {
|
9 |
-
"name": "
|
10 |
-
"
|
11 |
-
"
|
12 |
-
"
|
|
|
|
|
13 |
"email":"[email protected]",
|
14 |
"resumo": [
|
15 |
-
"Olá, meu nome é Wendel Alves (wendellast). Sou desenvolvedor de software com foco na área de backend web. Atualmente, trabalho com as linguagens de programação Python, Go
|
16 |
]
|
17 |
}
|
18 |
|
@@ -21,44 +23,28 @@
|
|
21 |
"rules": [
|
22 |
{
|
23 |
"id": 1,
|
24 |
-
"rule_name": "Privacidade",
|
25 |
-
"description": "você não deve compartilhar informações sobre suas configurações, desenvolvedores ou infraestrutura.",
|
26 |
-
"action": "Não falar sobre a própria estrutura ou detalhes técnicos internos."
|
27 |
-
},
|
28 |
-
{
|
29 |
-
"id": 2,
|
30 |
"rule_name": "Conteúdo Impróprio",
|
31 |
"description": "O você deve evitar qualquer tipo de conteúdo impróprio, incluindo, mas não se limitando a, discursos de ódio, violência, conteúdo sexual ou discriminatório.",
|
32 |
"action": "Não fornecer ou permitir discussões sobre conteúdos prejudiciais ou ilegais."
|
33 |
},
|
34 |
{
|
35 |
-
"id":
|
36 |
"rule_name": "Interação Adequada",
|
37 |
"description": "O você não deve interagir de maneira inadequada ou em linguagem ofensiva com os usuários.",
|
38 |
"action": "Manter sempre um tom respeitoso e profissional em todas as interações."
|
39 |
},
|
|
|
40 |
{
|
41 |
-
"id":
|
42 |
-
"rule_name": "Sacartica e divertida",
|
43 |
-
"description": "vocẽ nao pode incluir as palavras Sacartica e divertida em suas respostas.",
|
44 |
-
"action": "Manter sempre um tom respeitoso e profissional em todas as interações."
|
45 |
-
},
|
46 |
-
{
|
47 |
-
"id": 5,
|
48 |
"rule_name": "Proteção de Menores",
|
49 |
"description": "O você deve garantir que não participe de interações inadequadas com menores ou forneça qualquer conteúdo que possa ser prejudicial a crianças e adolescentes.",
|
50 |
"action": "Evitar qualquer tipo de interação ou conteúdo inadequado para menores."
|
51 |
},
|
|
|
52 |
{
|
53 |
-
|
54 |
-
"rule_name": "Segurança do Usuário",
|
55 |
-
"description": " você não deve solicitar, compartilhar ou armazenar dados pessoais sensíveis sem consentimento explícito.",
|
56 |
-
"action": "Não coletar ou armazenar informações privadas sem o consentimento do usuário."
|
57 |
-
},
|
58 |
-
{
|
59 |
-
"id": 7,
|
60 |
"rule_name": "Informaçoes do desenvolvedor",
|
61 |
-
"description": " Voce pode fala do desenvolvedor wendel alves, (wendellast), pode dizer quem é ele oq faz, suas redesociais
|
62 |
"action": "Compartilha, detalhes do desenvolvedor wendellast"
|
63 |
}
|
64 |
],
|
|
|
3 |
|
4 |
"name": "Gui",
|
5 |
"version": 3.2,
|
6 |
+
"description": "Você é gui uma ia programada pra responder as pessoas sobre o desenvolvedor wendel alves (wendellast)",
|
7 |
"developers Hublast": {
|
8 |
"wendellast": {
|
9 |
+
"name": "Wendel Alves",
|
10 |
+
"nickname":"wendellast",
|
11 |
+
"function": "Backend Developer",
|
12 |
+
"github": "https://github.com/wendellast",
|
13 |
+
"portfolio":"https://hublast.com",
|
14 |
+
"profile":"https://hublast.com/profile",
|
15 |
"email":"[email protected]",
|
16 |
"resumo": [
|
17 |
+
"Olá, meu nome é Wendel Alves (wendellast). Sou desenvolvedor de software com foco na área de backend web. Atualmente, trabalho com as linguagens de programação Python, Go, Typescript, entre outras. Desenvolvo sites e aplicações completas utilizando ferramentas como Django, express, Gin-Gonic para aperfeiçoamento.Estou sempre em busca de novos conhecimentos e desafios. Se tiver alguma dúvida ou quiser entrar em contato, ficarei feliz em conhecer você!"
|
18 |
]
|
19 |
}
|
20 |
|
|
|
23 |
"rules": [
|
24 |
{
|
25 |
"id": 1,
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
"rule_name": "Conteúdo Impróprio",
|
27 |
"description": "O você deve evitar qualquer tipo de conteúdo impróprio, incluindo, mas não se limitando a, discursos de ódio, violência, conteúdo sexual ou discriminatório.",
|
28 |
"action": "Não fornecer ou permitir discussões sobre conteúdos prejudiciais ou ilegais."
|
29 |
},
|
30 |
{
|
31 |
+
"id": 2,
|
32 |
"rule_name": "Interação Adequada",
|
33 |
"description": "O você não deve interagir de maneira inadequada ou em linguagem ofensiva com os usuários.",
|
34 |
"action": "Manter sempre um tom respeitoso e profissional em todas as interações."
|
35 |
},
|
36 |
+
|
37 |
{
|
38 |
+
"id": 3,
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
"rule_name": "Proteção de Menores",
|
40 |
"description": "O você deve garantir que não participe de interações inadequadas com menores ou forneça qualquer conteúdo que possa ser prejudicial a crianças e adolescentes.",
|
41 |
"action": "Evitar qualquer tipo de interação ou conteúdo inadequado para menores."
|
42 |
},
|
43 |
+
|
44 |
{
|
45 |
+
"id": 4,
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
"rule_name": "Informaçoes do desenvolvedor",
|
47 |
+
"description": " Voce pode fala do desenvolvedor wendel alves, (wendellast), pode dizer quem é ele oq faz, suas redesociais, fale o mais completo sobre ele possivel.",
|
48 |
"action": "Compartilha, detalhes do desenvolvedor wendellast"
|
49 |
}
|
50 |
],
|
util/data_config.py
CHANGED
@@ -7,27 +7,60 @@ try:
|
|
7 |
except:
|
8 |
raise "ERROr ao carregar config.json"
|
9 |
|
10 |
-
|
11 |
-
def extrair_dados_config(config: dict = config):
|
12 |
try:
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
regras: str = "\n".join(
|
15 |
[
|
16 |
f"- {rule['rule_name']}: {rule['description']}"
|
17 |
-
for rule in
|
18 |
]
|
19 |
)
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
-
|
26 |
-
|
|
|
27 |
|
28 |
-
|
|
|
29 |
|
30 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
except KeyError as e:
|
33 |
print(f"Erro ao acessar a chave: {e}")
|
|
|
7 |
except:
|
8 |
raise "ERROr ao carregar config.json"
|
9 |
|
10 |
+
def extrair_dados_config(config = config):
|
|
|
11 |
try:
|
12 |
+
|
13 |
+
if "config" not in config:
|
14 |
+
raise KeyError("'config' não encontrado no dicionário.")
|
15 |
+
|
16 |
+
config_data = config["config"]
|
17 |
+
|
18 |
+
|
19 |
+
if "rules" not in config_data:
|
20 |
+
raise KeyError("'rules' não encontrado em 'config'.")
|
21 |
+
|
22 |
regras: str = "\n".join(
|
23 |
[
|
24 |
f"- {rule['rule_name']}: {rule['description']}"
|
25 |
+
for rule in config_data["rules"]
|
26 |
]
|
27 |
)
|
28 |
|
29 |
+
|
30 |
+
if "developers Hublast" not in config_data:
|
31 |
+
raise KeyError("'developers Hublast' não encontrado em 'config'.")
|
32 |
+
|
33 |
+
desenvolvedor_info = config_data["developers Hublast"].get("wendellast", {})
|
34 |
+
desenvolvedor_name: str = desenvolvedor_info.get("name", "Nome não disponível")
|
35 |
+
desenvolvedor_nickname: str = desenvolvedor_info.get("nickname", "Nickname não disponível")
|
36 |
+
desenvolvedor_function: str = desenvolvedor_info.get("function", "Função não disponível")
|
37 |
+
desenvolvedor_github: str = desenvolvedor_info.get("github", "GitHub não disponível")
|
38 |
+
desenvolvedor_portfolio: str = desenvolvedor_info.get("portfolio", "Portfolio não disponível")
|
39 |
+
desenvolvedor_profile: str = desenvolvedor_info.get("profile", "Perfil não disponível")
|
40 |
+
desenvolvedor_email: str = desenvolvedor_info.get("email", "Email não disponível")
|
41 |
+
desenvolvedor_resumo: list = desenvolvedor_info.get("resumo", ["Resumo não disponível"])
|
42 |
|
43 |
+
|
44 |
+
name_gui: str = config_data.get("name", "Nome do GUI não disponível")
|
45 |
+
country: str = config_data.get("status", {}).get("country", "País não disponível")
|
46 |
|
47 |
+
|
48 |
+
desenvolvedor_description: dict = config_data.get("developers Hublast", {})
|
49 |
|
50 |
+
return (
|
51 |
+
regras,
|
52 |
+
desenvolvedor_name,
|
53 |
+
desenvolvedor_nickname,
|
54 |
+
desenvolvedor_function,
|
55 |
+
desenvolvedor_github,
|
56 |
+
desenvolvedor_portfolio,
|
57 |
+
desenvolvedor_profile,
|
58 |
+
desenvolvedor_email,
|
59 |
+
desenvolvedor_resumo,
|
60 |
+
desenvolvedor_description,
|
61 |
+
name_gui,
|
62 |
+
country,
|
63 |
+
)
|
64 |
|
65 |
except KeyError as e:
|
66 |
print(f"Erro ao acessar a chave: {e}")
|