from transformers import AutoModelForCausalLM, AutoTokenizerimport torch model_id = "ravinarayanan/soql-gemma4-lora"tokenizer = AutoTokenizer.from_pretrained(model_id)model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float16, device_map="auto",)model.eval() SYSTEM_PROMPT = ( "You are a SOQL query generator. Given a Salesforce schema and a " "question, output ONLY the bare SOQL query. No explanation, no markdown, " "no extra text, no reasoning.") def generate_soql(schema: str, question: str) -> str: messages = [ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": f"{schema}\n\nQuestion: {question}"}, ] # enable_thinking=False is REQUIRED — prevents Gemma 4 reasoning trace prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, enable_thinking=False ) inputs = tokenizer(prompt, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=120, do_sample=False) decoded = tokenizer.decode(outputs[0], skip_special_tokens=True) return decoded[len(tokenizer.decode(inputs["input_ids"][0], skip_special_tokens=True)):].strip() # Exampleschema = "Object: Vehicle__c. Fields: Name, Make__c, FuelType__c, Price__c, Color__c."soql = generate_soql(schema, "Find electric vehicles priced under 25000")print(soql)# SELECT Id, Name, Make__c, Price__c FROM Vehicle__c WHERE FuelType__c = 'Electric' AND Price__c < 25000