Spaces:
Sleeping
Sleeping
| """ | |
| Agent for correcting grammar in text | |
| """ | |
| import groq | |
| from config import get_settings | |
| settings = get_settings() | |
| class GrammarCorrector: | |
| """Class for correcting grammar in text using LLM""" | |
| def __init__(self): | |
| self.groq_api_key = settings.GROQ_API_KEY | |
| self.model_name = settings.MODEL_NAME | |
| self.temperature = settings.GRAMMAR_CORRECTION_TEMPERATURE | |
| def correct_grammar(self, text: str) -> str: | |
| """ | |
| Corrects grammar in user input using Groq's LLM. | |
| Args: | |
| text: The text to correct | |
| Returns: | |
| The corrected text | |
| """ | |
| if not text: | |
| return text | |
| client = groq.Groq(api_key=self.groq_api_key) | |
| try: | |
| chat_completion = client.chat.completions.create( | |
| messages=[ | |
| { | |
| "role": "user", | |
| "content": f"Correct any grammar, spelling, or punctuation errors in the following text, but keep the meaning exactly the same: '{text}'" | |
| } | |
| ], | |
| model=self.model_name, | |
| temperature=self.temperature, | |
| max_tokens=settings.MAX_TOKENS | |
| ) | |
| return chat_completion.choices[0].message.content | |
| except Exception as e: | |
| if settings.DEBUG: | |
| print(f"Error during grammar correction: {e}") | |
| return text # Return original text if correction fails | |
| # Create module-level instance for easier imports | |
| grammar_corrector = GrammarCorrector() | |
| # Export function for backward compatibility | |
| def correct_grammar(text: str) -> str: | |
| """Legacy function for backward compatibility""" | |
| return grammar_corrector.correct_grammar(text) | |