Spaces:
Sleeping
Sleeping
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| import networkx as nx | |
| from memory_manager import retrieve_relevant | |
| def analyze_sentiment_topics(conversation: list) -> dict: | |
| """Return placeholder sentiment and key topics.""" | |
| sentiments = ["Positive", "Neutral", "Negative"] | |
| sentiment = np.random.choice(sentiments, p=[0.4, 0.4, 0.2]) | |
| topics = ["AI Ethics", "Policy", "Culture", "Technology", "Future"] | |
| return { | |
| "sentiment": sentiment, | |
| "topics": np.random.choice(topics, 3, replace=False).tolist() | |
| } | |
| def plot_participation(conversation: list, save_path: str) -> str: | |
| """Save agent participation bar chart.""" | |
| agents = [msg['agent'] for msg in conversation] | |
| counts = {agent: agents.count(agent) for agent in set(agents)} | |
| plt.figure() | |
| plt.bar(counts.keys(), counts.values()) | |
| plt.title("Agent Participation") | |
| plt.tight_layout() | |
| plt.savefig(save_path) | |
| return save_path | |
| def generate_knowledge_graph(conversation: list, save_path: str) -> str: | |
| """Save a simple directed graph of agent interactions.""" | |
| G = nx.DiGraph() | |
| # Add nodes for each unique agent | |
| agents = [msg['agent'] for msg in conversation] | |
| for agent in set(agents): | |
| G.add_node(agent) | |
| # Randomly connect nodes | |
| import random | |
| nodes = list(G.nodes) | |
| for _ in range(len(nodes) * 2): | |
| a, b = random.sample(nodes, 2) | |
| G.add_edge(a, b) | |
| plt.figure() | |
| pos = nx.spring_layout(G) | |
| nx.draw(G, pos, with_labels=True, node_size=1500) | |
| plt.title("Knowledge Graph") | |
| plt.savefig(save_path) | |
| return save_path |