not-a-lawyer-agent

Not a lawyer. Not legal advice. Legal research from public sources; laws vary by jurisdiction, so check with a licensed attorney before acting.

Quick start (Ollama, runs on a CPU):

ollama run hf.co/profullstack/not-a-lawyer-agent-GGUF "Can my landlord keep my whole security deposit for normal wear and tear?"

Needs Ollama 0.3.13 or newer (curl -fsSL https://ollama.com/install.sh | sh, or w3bs install ollama). The GGUF is at profullstack/not-a-lawyer-agent-GGUF; this repo is the LoRA adapter.

base Qwen/Qwen2.5-0.5B-Instruct
corpus 5963 documents from pit-index:law,legal,lawyer,lawsuit,court ruling,contract law,copyright,tenant rights,employment law,small claims, topic:law, topic:legal, topic:lawyer, topic:lawsuit, topic:court, topic:copyright, topic:contract-law, topic:legal-tech
training 400 LoRA steps (r=8, seq_len=256, lr=0.0002) on the c0mpute network (infernet.text.train, job 3088dff7-b5a6-4969-a40e-5d250d6fa920, receipt hash sha256:88140d7fe1c84b0bd03cc4b70838caef984c80d702d470e88595b08a22552ed6 matches this adapter)
held-out perplexity 35.4 to 20.6
adapter sha256 88140d7fe1c84b0bd03cc4b70838caef984c80d702d470e88595b08a22552ed6

Built with the c0mpute example. Sources are rssamplifier.com topic feeds and pit.world search; the corpus is not redistributed here.

Use from Python (adapter)

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("profullstack/not-a-lawyer-agent")
model = PeftModel.from_pretrained(AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct"), "profullstack/not-a-lawyer-agent")
msgs = [{"role": "system", "content": "You are not-a-lawyer-agent, a legal research assistant. You are not a lawyer and this is not legal advice. Explain the law in plain English, name the jurisdiction a rule comes from, cite the sources you were given, and say when someone should talk to a licensed attorney."},
        {"role": "user", "content": "Can my landlord keep my whole security deposit for normal wear and tear?"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt")
print(tok.decode(model.generate(ids, max_new_tokens=300)[0][ids.shape[1]:], skip_special_tokens=True))

Best results come from putting fresh search results in the prompt (the example's chat.py uses pit.world search): a sub-1B model supplies the voice, not the facts.

Downloads last month
16
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for profullstack/not-a-lawyer-agent

Adapter
(983)
this model