update
This commit is contained in:
@@ -391,6 +391,80 @@ English Summary (max {max_words} words):"""
|
||||
'current_model': self.model,
|
||||
'error': str(e)
|
||||
}
|
||||
|
||||
def generate(self, prompt, max_tokens=100):
|
||||
"""
|
||||
Generate text using Ollama
|
||||
|
||||
Args:
|
||||
prompt: Text prompt
|
||||
max_tokens: Maximum tokens to generate
|
||||
|
||||
Returns:
|
||||
{
|
||||
'text': str, # Generated text
|
||||
'success': bool, # Whether generation succeeded
|
||||
'error': str or None, # Error message if failed
|
||||
'duration': float # Time taken in seconds
|
||||
}
|
||||
"""
|
||||
if not self.enabled:
|
||||
return {
|
||||
'text': '',
|
||||
'success': False,
|
||||
'error': 'Ollama is disabled',
|
||||
'duration': 0
|
||||
}
|
||||
|
||||
start_time = time.time()
|
||||
|
||||
try:
|
||||
response = requests.post(
|
||||
f"{self.base_url}/api/generate",
|
||||
json={
|
||||
"model": self.model,
|
||||
"prompt": prompt,
|
||||
"stream": False,
|
||||
"options": {
|
||||
"num_predict": max_tokens,
|
||||
"temperature": 0.1 # Low temperature for consistent answers
|
||||
}
|
||||
},
|
||||
timeout=self.timeout
|
||||
)
|
||||
|
||||
duration = time.time() - start_time
|
||||
|
||||
if response.status_code == 200:
|
||||
result = response.json()
|
||||
return {
|
||||
'text': result.get('response', '').strip(),
|
||||
'success': True,
|
||||
'error': None,
|
||||
'duration': duration
|
||||
}
|
||||
else:
|
||||
return {
|
||||
'text': '',
|
||||
'success': False,
|
||||
'error': f"HTTP {response.status_code}: {response.text}",
|
||||
'duration': duration
|
||||
}
|
||||
|
||||
except requests.exceptions.Timeout:
|
||||
return {
|
||||
'text': '',
|
||||
'success': False,
|
||||
'error': f"Request timed out after {self.timeout}s",
|
||||
'duration': time.time() - start_time
|
||||
}
|
||||
except Exception as e:
|
||||
return {
|
||||
'text': '',
|
||||
'success': False,
|
||||
'error': str(e),
|
||||
'duration': time.time() - start_time
|
||||
}
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user