artificialguybr's picture
Create app.py
8ea927a
raw
history blame
4.04 kB
import gradio as gr
import os
import openai
# Defina sua chave da API OpenAI
api_key = None
def create_knowledge_graph(user_input):
global api_key
if not api_key:
return "Por favor, insira sua chave da API OpenAI."
# Configurar a chamada para a API OpenAI
openai.api_key = api_key
response = 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}",
}
],
functions=[
{
"name": "knowledge_graph",
"description": "Generate a knowledge graph with entities and relationships...",
"parameters": {
"type": "object",
"properties": {
"metadata": {
"type": "object",
"properties": {
"createdDate": {"type": "string"},
"lastUpdated": {"type": "string"},
"description": {"type": "string"},
},
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {"type": "string"},
"label": {"type": "string"},
"type": {"type": "string"},
"color": {"type": "string"},
"properties": {
"type": "object",
"description": "Additional attributes for the node",
},
},
"required": [
"id",
"label",
"type",
"color",
],
},
},
"edges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {"type": "string"},
"to": {"type": "string"},
"relationship": {"type": "string"},
"direction": {"type": "string"},
"color": {"type": "string"},
"properties": {
"type": "object",
"description": "Additional attributes for the edge",
},
},
"required": [
"from",
"to",
"relationship",
"color",
],
},
},
},
"required": ["nodes", "edges"],
},
}
],
function_call={"name": "knowledge_graph"},
)
response_data = response.choices[0]["message"]["function_call"]["arguments"]
return response_data
# Defina a interface Gradio
iface = gr.Interface(
fn=create_knowledge_graph,
inputs=gr.Textbox("Texto para criar o gráfico de conhecimento:"),
outputs=gr.Image(type="pil"), # Imagem de saída para o gráfico
live=True,
)
if __name__ == "__main__":
iface.launch()