Spaces:
Build error
Build error
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| class CodingAgent: | |
| def __init__(self, model_path): | |
| self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
| self.model = AutoModelForCausalLM.from_pretrained(model_path).to(self.device) | |
| self.tokenizer = AutoTokenizer.from_pretrained(model_path) | |
| def generate_code(self, prompt, max_length=512, temperature=0.7, top_k=50, top_p=0.95): | |
| inputs = self.tokenizer(prompt, return_tensors="pt").to(self.device) | |
| with torch.no_grad(): | |
| outputs = self.model.generate( | |
| **inputs, | |
| max_length=max_length, | |
| temperature=temperature, | |
| top_k=top_k, | |
| top_p=top_p, | |
| do_sample=True, | |
| num_return_sequences=1, | |
| ) | |
| return self.tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| def answer_coding_question(self, question): | |
| prompt = f"As a coding assistant, please answer the following question:\n\nQuestion: {question}\n\nAnswer:" | |
| return self.generate_code(prompt) | |
| def explain_code(self, code): | |
| prompt = f"Please explain the following code:\n\n```python\n{code}\n```\n\nExplanation:" | |
| return self.generate_code(prompt) | |
| def suggest_improvements(self, code): | |
| prompt = f"Please suggest improvements for the following code:\n\n```python\n{code}\n```\n\nSuggestions:" | |
| return self.generate_code(prompt) |