Spaces:
Sleeping
Sleeping
File size: 1,404 Bytes
8ea927a 410031a 8ea927a 410031a 8ea927a 410031a 77f6b05 b31a1e4 77f6b05 8ea927a 77f6b05 8ea927a 77f6b05 410031a 77f6b05 410031a 77f6b05 410031a 77f6b05 410031a 77f6b05 8ea927a 77f6b05 410031a 572ad52 77f6b05 572ad52 410031a 8ea927a 410031a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import gradio as gr
import openai
import json
from graphviz import Digraph
def generate_knowledge_graph(api_key, user_input):
openai.api_key = api_key
# Chamar a API da OpenAI
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo-16k",
messages=[
{
"role": "user",
"content": f"Help me understand following by describing as a detailed knowledge graph: {user_input}",
}
]
)
response_data = completion.choices[0].message.to_dict()
response_data = json.loads(response_data['content'])
# Visualizar o conhecimento usando Graphviz
dot = Digraph(comment="Knowledge Graph")
for node in response_data.get("nodes", []):
dot.node(node["id"], f"{node['label']} ({node['type']})")
for edge in response_data.get("edges", []):
dot.edge(edge["from"], edge["to"], label=edge["relationship"])
# Renderizar para o formato PNG
dot.format = "png"
dot.render(filename="knowledge_graph", cleanup=True)
return "knowledge_graph.png"
iface = gr.Interface(
fn=generate_knowledge_graph,
inputs=[
gr.components.Textbox(label="OpenAI API Key", type="password"),
gr.components.Textbox(label="User Input for Graph")
],
outputs=gr.components.Image(type="filepath", label="Generated Knowledge Graph"),
live=False
)
iface.launch()
|