maeyen / inference.py
itstalmeez's picture
Upload 12 files
e32469c verified
Raw
History Blame Contribute Delete
2.36 kB
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import json
import os
# For internal use: base model details are in PRIVATE_MODEL_TRAINING_NOTES.md
def load_maeyen_assistant(model_path):
"""Load Maeyen Trust & Risk Assistant (internal use only)"""
# See PRIVATE_MODEL_TRAINING_NOTES.md for base model info
print("Loading tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(model_path)
tokenizer.pad_token = tokenizer.eos_token
print("Loading model...")
model = AutoModelForCausalLM.from_pretrained(
model_path,
device_map="cpu" # or "auto" if GPU available
)
return model, tokenizer
def generate_recommendation(model, tokenizer, task, data):
"""Generate structured recommendation from Maeyen AI"""
system_prompts = {
"risk": "You are Maeyen AI Transaction Risk Agent. Assess risk and output valid JSON only with requires_human_review: true.",
"evidence": "You are Maeyen AI Evidence Review Agent. Review evidence and output valid JSON only with requires_human_review: true.",
"dispute": "You are Maeyen AI Dispute Assistant. Summarize dispute and output valid JSON only with requires_human_review: true.",
"trust": "You are Maeyen AI Trust Score Explanation Agent. Explain trust score and output valid JSON only."
}
system_prompt = system_prompts.get(task, system_prompts["risk"])
prompt = f"""<|im_start|>system
{system_prompt}<|im_end|>
<|im_start|>user
{json.dumps(data, indent=2)}<|im_end|>
<|im_start|>assistant
"""
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.1,
do_sample=False,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
try:
return json.loads(response)
except json.JSONDecodeError:
return {"raw_response": response, "requires_human_review": True}
# Example usage (internal only)
if __name__ == "__main__":
# Note: See PRIVATE_MODEL_TRAINING_NOTES.md for full setup
print("This is for internal use. See PRIVATE_MODEL_TRAINING_NOTES.md for base model details.")