Nihal2000 commited on
Commit
4228dd5
·
verified ·
1 Parent(s): cc72373

Update services/llm_service.py

Browse files
Files changed (1) hide show
  1. services/llm_service.py +14 -12
services/llm_service.py CHANGED
@@ -14,8 +14,8 @@ class LLMService:
14
  self.config = config.config
15
 
16
  self.anthropic_client = None
17
- self.mistral_client = None # Synchronous Mistral client
18
- self.openai_async_client = None # Asynchronous OpenAI client
19
 
20
  self._initialize_clients()
21
 
@@ -53,7 +53,7 @@ class LLMService:
53
  async def generate_text(self, prompt: str, model: str = "auto", max_tokens: int = 1000, temperature: float = 0.7) -> str:
54
  """Generate text using the specified model, with new priority for 'auto'."""
55
  try:
56
- selected_model_name_for_call: str = "" # Actual model name passed to the specific generator
57
 
58
  if model == "auto":
59
  # New Priority: 1. OpenAI, 2. Mistral, 3. Anthropic
@@ -132,7 +132,7 @@ class LLMService:
132
  response = await loop.run_in_executor(
133
  None,
134
  lambda: self.anthropic_client.messages.create(
135
- model=model_name, # Use the passed model_name
136
  max_tokens=max_tokens,
137
  temperature=temperature,
138
  messages=[
@@ -160,7 +160,7 @@ class LLMService:
160
  response = await loop.run_in_executor(
161
  None,
162
  lambda: self.mistral_client.chat(
163
- model=model_name, # Use the passed model_name
164
  messages=[{"role": "user", "content": prompt}],
165
  max_tokens=max_tokens,
166
  temperature=temperature
@@ -265,21 +265,23 @@ class LLMService:
265
  context = context[:max_context_length] + "..."
266
  logger.warning(f"Context truncated to {max_context_length} characters for question answering.")
267
 
268
- prompt = f"""You are a helpful assistant. Answer the following question based ONLY on the provided context.
269
- If the context does not contain the information to answer the question, state that the context does not provide the answer.
270
- Do not make up information or use external knowledge.
271
 
272
- Context:
273
- ---
274
  {context}
275
- ---
 
 
276
 
277
  Question: {question}
278
 
279
  Answer:"""
280
 
281
  try:
282
- answer = await self.generate_text(prompt, model="auto", max_tokens=300, temperature=0.2)
283
  return answer.strip()
284
  except Exception as e:
285
  logger.error(f"Error answering question: {str(e)}")
 
14
  self.config = config.config
15
 
16
  self.anthropic_client = None
17
+ self.mistral_client = None
18
+ self.openai_async_client = None
19
 
20
  self._initialize_clients()
21
 
 
53
  async def generate_text(self, prompt: str, model: str = "auto", max_tokens: int = 1000, temperature: float = 0.7) -> str:
54
  """Generate text using the specified model, with new priority for 'auto'."""
55
  try:
56
+ selected_model_name_for_call: str = ""
57
 
58
  if model == "auto":
59
  # New Priority: 1. OpenAI, 2. Mistral, 3. Anthropic
 
132
  response = await loop.run_in_executor(
133
  None,
134
  lambda: self.anthropic_client.messages.create(
135
+ model=model_name,
136
  max_tokens=max_tokens,
137
  temperature=temperature,
138
  messages=[
 
160
  response = await loop.run_in_executor(
161
  None,
162
  lambda: self.mistral_client.chat(
163
+ model=model_name,
164
  messages=[{"role": "user", "content": prompt}],
165
  max_tokens=max_tokens,
166
  temperature=temperature
 
265
  context = context[:max_context_length] + "..."
266
  logger.warning(f"Context truncated to {max_context_length} characters for question answering.")
267
 
268
+ prompt = f"""You are an expert Q&A assistant. Your task is to synthesize an answer to the user's question based *only* on the provided source documents.
269
+ Analyze all the source documents provided in the context below.
270
+ If the information is present, provide a comprehensive answer.
271
 
272
+ Here are the source documents:
273
+ --- START OF CONTEXT ---
274
  {context}
275
+ --- END OF CONTEXT ---
276
+
277
+ Based on the context above, please provide a clear and concise answer to the following question.
278
 
279
  Question: {question}
280
 
281
  Answer:"""
282
 
283
  try:
284
+ answer = await self.generate_text(prompt, model="auto", max_tokens=800, temperature=0.5)
285
  return answer.strip()
286
  except Exception as e:
287
  logger.error(f"Error answering question: {str(e)}")