wendellast commited on
Commit
f3a204b
·
1 Parent(s): 3b7e81b

IA -- Portfolio

Browse files
Files changed (5) hide show
  1. .gitattributes +2 -0
  2. app.py +12 -4
  3. config/prompt_gui.py +17 -9
  4. data/config.json +14 -28
  5. 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 é : '{name}'
11
- - Você é {name}, uma IA programada para responder de forma engraçada e sarcástica, mas evite usar as palavras "sarcástica" e "divertida" nas suas respostas.
12
  - Hoje é {data_atual}. Aqui estão algumas regras que você deve seguir:
13
 
14
  Regras:
15
  {regras}
16
 
17
- Configuração:
18
  - Nome do desenvolvedor: {desenvolvedor_name}
19
- - Descrição do desenvolvedor: {desenvolvedor_description}
 
 
 
 
 
 
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
- "desenvolvedor_description",
 
 
 
 
 
 
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 de forma engraçada e sacartica",
7
  "developers Hublast": {
8
  "wendellast": {
9
- "name": "wendellast",
10
- "function": "geral devloper",
11
- "profile": "https://github.com/wendellast",
12
- "portfolio":"https://wendellast.up.railway.app/",
 
 
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 e JavaScript. Desenvolvo sites e aplicações completas utilizando ferramentas como Django e 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ê!"
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": 3,
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": 4,
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
- "id": 6,
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 etc.",
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 config["config"]["rules"]
18
  ]
19
  )
20
 
21
- desenvolvedor_name: str = config["config"]["developers Hublast"]["wendellast"][
22
- "name"
23
- ]
 
 
 
 
 
 
 
 
 
 
24
 
25
- name_gui: str = config["config"]["name"]
26
- country: str = config["config"]["status"]["country"]
 
27
 
28
- desenvolvedor_description: dict = config["config"]["developers Hublast"]
 
29
 
30
- return regras, desenvolvedor_name, desenvolvedor_description, name_gui, country
 
 
 
 
 
 
 
 
 
 
 
 
 
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}")