CodexDemo / app.py
LordXido's picture
Update app.py
cbceeb4 verified
Raw
History Blame Contribute Delete
2.41 kB
import torch
import torch.nn as nn
import torch.optim as optim
from transformers import AutoModel, AutoTokenizer
import gradio as gr
class DrMoagiSystem(nn.Module):
def __init__(self, model_name: str = "bert-base-uncased"):
super(DrMoagiSystem, self).__init__()
self.model = AutoModel.from_pretrained(model_name)
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.intent_encoder = nn.Linear(768, 128)
self.field_modulator = nn.Linear(128, 128)
self.constraint_kernel = nn.Linear(128, 128)
self.memory_operator = nn.LSTM(128, 128, num_layers=1)
self.projection_operator = nn.Linear(128, 768)
def forward(self, input_ids: torch.Tensor, attention_mask: torch.Tensor, memory: torch.Tensor):
# Intent Encoder
outputs = self.model(input_ids, attention_mask=attention_mask)
intent = torch.relu(self.intent_encoder(outputs.last_hidden_state[:, 0, :]))
# Field Modulator
field = torch.relu(self.field_modulator(intent))
# Constraint Kernel
constrained_field = torch.relu(self.constraint_kernel(field))
# Memory Operator
memory_output, _ = self.memory_operator(constrained_field.unsqueeze(0), memory)
memory = memory_output.squeeze(0)
# Projection Operator
output = self.projection_operator(memory)
return output, memory
def translate(self, input_text: str, context: str):
inputs = self.tokenizer(input_text, return_tensors="pt")
input_ids = inputs["input_ids"]
attention_mask = inputs["attention_mask"]
memory = torch.zeros(1, 128)
output, memory = self.forward(input_ids, attention_mask, memory)
return self.tokenizer.decode(output.argmax(-1), skip_special_tokens=True)
# Initialize the system
system = DrMoagiSystem()
# Define the Gradio interface
def dr_moagi_interface(input_text, context):
try:
output = system.translate(input_text, context)
return output
except Exception as e:
return f"Error: {str(e)}"
interface = gr.Interface(
fn=dr_moagi_interface,
inputs=[
gr.Textbox(label="Input Text"),
gr.Textbox(label="Context"),
],
outputs=gr.Textbox(label="Output"),
title="Dr Moagi System",
description="A universal translational logic operator",
)
# Launch the interface
interface.launch()