|
|
import os |
|
|
|
|
|
|
|
|
os.environ["OPENAI_API_KEY"] = os.environ.get("OPENAI_API_KEY") |
|
|
os.environ["HUGGINGFACE_HUB_TOKEN"] = os.environ.get("HUGGINGFACE_API_KEY") |
|
|
|
|
|
|
|
|
import json |
|
|
import networkx as nx |
|
|
import os |
|
|
import sqlite3 |
|
|
|
|
|
from transformers import pipeline |
|
|
|
|
|
|
|
|
os.environ["OPENAI_API_KEY"] = os.environ.get("OPENAI_API_KEY") |
|
|
os.environ["HUGGINGFACE_HUB_TOKEN"] = os.environ.get("HUGGINGFACE_API_KEY") |
|
|
|
|
|
class Learner: |
|
|
def __init__(self): |
|
|
self.knowledge = pipeline('question-answering') |
|
|
|
|
|
|
|
|
def learn(self, context, question): |
|
|
answer = self.knowledge(question=question, context=context) |
|
|
return answer['answer'] |
|
|
|
|
|
def comprehend_code(self, code_snippet, language="python"): |
|
|
tree = ast.parse(code_snippet) |
|
|
for node in ast.walk(tree): |
|
|
if isinstance(node, ast.FunctionDef): |
|
|
print(f"Function definition: {node.name}") |
|
|
|
|
|
for arg in node.args.args: |
|
|
print(f" Argument: {arg.arg}") |
|
|
if node.returns: |
|
|
print(f" Return type: {node.returns}") |
|
|
elif isinstance(node, ast.ClassDef): |
|
|
print(f"Class definition: {node.name}") |
|
|
|
|
|
for base in node.bases: |
|
|
print(f" Inherits from: {base.id}") |
|
|
elif isinstance(node, ast.Assign): |
|
|
print(f"Variable assignment: {node.targets[0].id} = {node.value}") |
|
|
|
|
|
elif isinstance(node, ast.If): |
|
|
print(f"Conditional statement: if {node.test}") |
|
|
|
|
|
|
|
|
|
|
|
def generate_code(self, instructions, language="python"): |
|
|
generator = pipeline('code-generation', model='Salesforce/codegen-350M-mono') |
|
|
generated_code = generator(instructions) |
|
|
return generated_code[0]['generated_text'] |
|
|
|
|
|
def debug_and_optimize(self, code_snippet, language="python"): |
|
|
|
|
|
results = pylint.lint.Run(code_snippet, do_exit=False) |
|
|
for msg in results.linter.reporter.messages: |
|
|
print(f"{msg.msg_id}: {msg.msg} ({msg.line},{msg.column})") |
|
|
|
|
|
|
|
|
|
|
|
class Observer: |
|
|
def __init__(self): |
|
|
self.sentiment = pipeline('sentiment-analysis') |
|
|
|
|
|
def analyze_sentiment(self, text): |
|
|
result = self.sentiment(text)[0] |
|
|
return result['label'] |
|
|
|
|
|
class GoalSeeker: |
|
|
def __init__(self): |
|
|
self.goals = [] |
|
|
|
|
|
def add_goal(self, goal): |
|
|
self.goals.append(goal) |
|
|
|
|
|
def pursue_goal(self): |
|
|
if self.goals: |
|
|
return f"Currently pursuing goal: {self.goals[0]}" |
|
|
else: |
|
|
return "No goals set yet." |
|
|
|
|
|
class Communicator: |
|
|
def __init__(self): |
|
|
self.generator = pipeline('text-generation') |
|
|
|
|
|
def express(self, prompt, max_length=50): |
|
|
result = self.generator(prompt, max_length=max_length)[0] |
|
|
return result['generated_text'] |
|
|
|
|
|
class BrainstormingEngine: |
|
|
def __init__(self): |
|
|
self.generator = pipeline('text-generation') |
|
|
self.idea_repository = nx.Graph() |
|
|
|
|
|
def store_idea(self, idea, category): |
|
|
|
|
|
self.idea_repository.add_node(idea, category=category) |
|
|
|
|
|
|
|
|
def generate_code_prototype(self, idea): |
|
|
|
|
|
|
|
|
pass |
|
|
|
|
|
class Synergy: |
|
|
def __init__(self, learner, observer, goal_seeker, communicator, brainstorming_engine): |
|
|
self.learner = learner |
|
|
self.observer = observer |
|
|
self.goal_seeker = goal_seeker |
|
|
self.communicator = communicator |
|
|
self.brainstorming_engine = brainstorming_engine |
|
|
|
|
|
def interact(self, user_input): |
|
|
sentiment = self.observer.analyze_sentiment(user_input) |
|
|
print(f"Sentiment: {sentiment}") |
|
|
|
|
|
if "goal" in user_input.lower(): |
|
|
self.goal_seeker.add_goal(user_input) |
|
|
print(self.goal_seeker.pursue_goal()) |
|
|
|
|
|
|
|
|
if "code" in user_input.lower(): |
|
|
self.integrate_coding_and_brainstorming(user_input) |
|
|
|
|
|
response = self.communicator.express(user_input) |
|
|
print(f"Synergy: {response}") |
|
|
|
|
|
def integrate_coding_and_brainstorming(self, task): |
|
|
|
|
|
sentiment = self.observer.analyze_sentiment(task) |
|
|
|
|
|
|
|
|
|
|
|
ideas = self.brainstorming_engine.generator(task, num_return_sequences=3) |
|
|
for idea in ideas: |
|
|
print(f"Idea: {idea['generated_text']}") |
|
|
self.brainstorming_engine.store_idea(idea['generated_text'], sentiment) |
|
|
|
|
|
|
|
|
for idea in ideas: |
|
|
code_prototype = self.learner.generate_code(idea['generated_text']) |
|
|
print(f"Code Prototype: {code_prototype}") |
|
|
|
|
|
|
|
|
def learn_from_outcomes(self, feedback): |
|
|
|
|
|
sentiment = self.observer.analyze_sentiment(feedback) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
learner = Learner() |
|
|
observer = Observer() |
|
|
goal_seeker = GoalSeeker() |
|
|
communicator = Communicator() |
|
|
brainstorming_engine = BrainstormingEngine() |
|
|
|
|
|
|
|
|
synergy = Synergy(learner, observer, goal_seeker, communicator, brainstorming_engine) |