Skip to content

Commit

Permalink
Update app.py
Browse files Browse the repository at this point in the history
  • Loading branch information
crossmodaldebate authored Sep 21, 2024
1 parent b3c3d10 commit f30bbae
Showing 1 changed file with 36 additions and 38 deletions.
74 changes: 36 additions & 38 deletions app.py
Original file line number Diff line number Diff line change
@@ -1,55 +1,56 @@
import streamlit as st
import groq
import os
import json
import time
import hypernetx as hnx # Importando biblioteca para manipular hipergrafos [[4]](https://poe.com/citation?message_id=253875365866&citation=4)
import hypernetx as hnx
import oolama # Certifique-se de que o módulo oolama esteja disponível

client = groq.Groq()

# Função para construir o hipergrafo a partir do prompt
def build_hypergraph(input_data):
# Aqui, tokenizamos o input e extraímos entidades e relações
tokens = oolama.tokenize(input_data) # Tokenização com Oolama [[4]](https://poe.com/citation?message_id=253875365866&citation=4)
entities = oolama.extract_entities(tokens) # Extração de entidades
relations = oolama.extract_relations(tokens) # Extração de relações
try:
tokens = oolama.tokenize(input_data)
entities = oolama.extract_entities(tokens)
relations = oolama.extract_relations(tokens)

# Criamos o hipergrafo utilizando hypernetx [[4]](https://poe.com/citation?message_id=253875365866&citation=4)
hypergraph = hnx.Hypergraph()

# Adicionamos as entidades como nós
for entity in entities:
hypergraph.add_node(entity)

# Adicionamos as relações como hiperarestas
for relation in relations:
hypergraph.add_edge(relation['entities'], relation['type']) # Adiciona hiperarestas ao hipergrafo [[6]](https://poe.com/citation?message_id=253875365866&citation=6)

return hypergraph
hypergraph = hnx.Hypergraph()
for entity in entities:
hypergraph.add_node(entity)
for relation in relations:
hypergraph.add_edge(relation['entities'], relation['type'])

# Função para realizar inferência no hipergrafo
def infer_on_hypergraph(hypergraph):
# Convertendo o hipergrafo para o formato apropriado para inferência com Oolama [[6]](https://poe.com/citation?message_id=253875365866&citation=6)
oolama_input = hnx.convert_to_oolama_format(hypergraph) # Conversão para formato compatível com Oolama
results = oolama.infer(oolama_input) # Realizando a inferência
return hypergraph
except Exception as e:
st.error(f"Erro ao construir o hipergrafo: {e}")
return None

return results
def infer_on_hypergraph(hypergraph):
try:
oolama_input = hnx.convert_to_oolama_format(hypergraph)
results = oolama.infer(oolama_input)
return results
except Exception as e:
st.error(f"Erro ao realizar inferência no hipergrafo: {e}")
return None

# Função para formatar os resultados
def format_hypergraph_inference_results(results):
formatted_results = oolama.format_results(results) # Formatando os resultados da inferência [[3]](https://poe.com/citation?message_id=253875365866&citation=3)
return formatted_results
try:
formatted_results = oolama.format_results(results)
return formatted_results
except Exception as e:
st.error(f"Erro ao formatar os resultados da inferência: {e}")
return None

# Função que gera a resposta baseada no hipergrafo
def generate_hypergraph_response(prompt):
# Construção inicial do hipergrafo a partir do prompt
hypergraph = build_hypergraph(prompt)
if hypergraph is None:
return "Erro ao gerar hipergrafo."

# Realiza inferências no hipergrafo
results = infer_on_hypergraph(hypergraph)
if results is None:
return "Erro ao realizar inferência no hipergrafo."

# Formata os resultados para serem exibidos
formatted_results = format_hypergraph_inference_results(results)
if formatted_results is None:
return "Erro ao formatar os resultados da inferência."

return formatted_results

Expand All @@ -62,17 +63,14 @@ def main():
Este é um protótipo inicial que utiliza métodos heurísticos e hermenêuticos com uma arquitetura de hipergrafos para melhorar a precisão das saídas.
""")

# Caixa de texto para a consulta do usuário
user_query = st.text_input("Insira sua consulta:", placeholder="Por exemplo, Quantos 'R's existem na palavra morango?")

if user_query:
st.write("Gerando resposta com base na arquitetura de hipergrafos...")

# Geramos a resposta com base no hipergrafo
response = generate_hypergraph_response(user_query)

# Exibimos a resposta formatada
st.write(response)

if __name__ == "__main__":
if _name_ == "_main_":
main()

0 comments on commit f30bbae

Please sign in to comment.