mem-llm 1.0.4__py3-none-any.whl → 1.0.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mem-llm might be problematic. Click here for more details.

mem_llm/__init__.py CHANGED
@@ -24,7 +24,7 @@ try:
24
24
  except ImportError:
25
25
  __all_pro__ = []
26
26
 
27
- __version__ = "1.0.4"
27
+ __version__ = "1.0.5"
28
28
  __author__ = "C. Emre Karataş"
29
29
 
30
30
  __all__ = [
mem_llm/memory_db.py CHANGED
@@ -295,7 +295,7 @@ class SQLMemoryManager:
295
295
  def search_knowledge(self, query: str, category: Optional[str] = None,
296
296
  limit: int = 5) -> List[Dict]:
297
297
  """
298
- Bilgi bankasında arama yapar
298
+ Bilgi bankasında arama yapar (gelişmiş keyword matching)
299
299
 
300
300
  Args:
301
301
  query: Arama sorgusu
@@ -307,25 +307,51 @@ class SQLMemoryManager:
307
307
  """
308
308
  cursor = self.conn.cursor()
309
309
 
310
+ # Extract important keywords from query (remove question words)
311
+ import re
312
+ stopwords = ['ne', 'kadar', 'nedir', 'nasıl', 'için', 'mı', 'mi', 'mu', 'mü',
313
+ 'what', 'how', 'when', 'where', 'is', 'are', 'the', 'a', 'an']
314
+
315
+ # Clean query and extract keywords
316
+ query_lower = query.lower()
317
+ words = re.findall(r'\w+', query_lower)
318
+ keywords = [w for w in words if w not in stopwords and len(w) > 2]
319
+
320
+ # If no keywords, use original query
321
+ if not keywords:
322
+ keywords = [query_lower]
323
+
324
+ # Build search conditions for each keyword
325
+ conditions = []
326
+ params = []
327
+
328
+ for keyword in keywords[:5]: # Max 5 keywords
329
+ conditions.append("(question LIKE ? OR answer LIKE ? OR keywords LIKE ?)")
330
+ params.extend([f"%{keyword}%", f"%{keyword}%", f"%{keyword}%"])
331
+
332
+ where_clause = " OR ".join(conditions) if conditions else "1=1"
333
+
310
334
  if category:
311
- cursor.execute("""
335
+ sql = f"""
312
336
  SELECT category, question, answer, priority
313
337
  FROM knowledge_base
314
338
  WHERE active = 1
315
339
  AND category = ?
316
- AND (question LIKE ? OR answer LIKE ? OR keywords LIKE ?)
340
+ AND ({where_clause})
317
341
  ORDER BY priority DESC, id DESC
318
342
  LIMIT ?
319
- """, (category, f"%{query}%", f"%{query}%", f"%{query}%", limit))
343
+ """
344
+ cursor.execute(sql, [category] + params + [limit])
320
345
  else:
321
- cursor.execute("""
346
+ sql = f"""
322
347
  SELECT category, question, answer, priority
323
348
  FROM knowledge_base
324
349
  WHERE active = 1
325
- AND (question LIKE ? OR answer LIKE ? OR keywords LIKE ?)
350
+ AND ({where_clause})
326
351
  ORDER BY priority DESC, id DESC
327
352
  LIMIT ?
328
- """, (f"%{query}%", f"%{query}%", f"%{query}%", limit))
353
+ """
354
+ cursor.execute(sql, params + [limit])
329
355
 
330
356
  return [dict(row) for row in cursor.fetchall()]
331
357
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mem-llm
3
- Version: 1.0.4
3
+ Version: 1.0.5
4
4
  Summary: Memory-enabled AI assistant with local LLM support
5
5
  Home-page: https://github.com/emredeveloper/Mem-LLM
6
6
  Author: C. Emre Karataş
@@ -1,15 +1,15 @@
1
- mem_llm/__init__.py,sha256=8aY47mzeaxhyimSQ3vU4FeiHTvyRnderMhX0qkQ5zKw,920
1
+ mem_llm/__init__.py,sha256=XF8GqWqOkrqP5N6EPdo3duNxshvQR8zRckbqH3jpPII,920
2
2
  mem_llm/config.yaml.example,sha256=lgmfaU5pxnIm4zYxwgCcgLSohNx1Jw6oh3Qk0Xoe2DE,917
3
3
  mem_llm/config_from_docs.py,sha256=YFhq1SWyK63C-TNMS73ncNHg8sJ-XGOf2idWVCjxFco,4974
4
4
  mem_llm/config_manager.py,sha256=8PIHs21jZWlI-eG9DgekjOvNxU3-U4xH7SbT8Gr-Z6M,7075
5
5
  mem_llm/knowledge_loader.py,sha256=oSNhfYYcx7DlZLVogxnbSwaIydq_Q3__RDJFeZR2XVw,2699
6
6
  mem_llm/llm_client.py,sha256=XW-LALYV4C-Nj2R8XYT2iT2YnTeH6_tUIldMKooY2uY,5461
7
7
  mem_llm/mem_agent.py,sha256=FYiZyOIadURC0RdsY-aRdaZ53oxtOj0U5Crt2yWEbz8,24058
8
- mem_llm/memory_db.py,sha256=KyNIcChYihSavd2ot5KMBlVB9lq8rexoBQ0lA5bCJNI,12611
8
+ mem_llm/memory_db.py,sha256=UzkMOw_p7svg6d4ZgpBWdPKoILWrJ2hAQSPHvAG_f4M,13563
9
9
  mem_llm/memory_manager.py,sha256=iXnf5YEJXmQ75jgJ2LEx9zCHxIpZTcLtHlp2eWgFjRg,8335
10
10
  mem_llm/memory_tools.py,sha256=ARANFqu_bmL56SlV1RzTjfQsJj-Qe2QvqY0pF92hDxU,8678
11
11
  mem_llm/prompt_templates.py,sha256=tCiQJw3QQKIaH8NsxEKOIaIVxw4XT43PwdmyfCINzzM,6536
12
- mem_llm-1.0.4.dist-info/METADATA,sha256=H4njHFVhNXq0msFIpiQdoE7sCcGB3YrR_LP6vzZH_tc,6505
13
- mem_llm-1.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
14
- mem_llm-1.0.4.dist-info/top_level.txt,sha256=_fU1ML-0JwkaxWdhqpwtmTNaJEOvDMQeJdA8d5WqDn8,8
15
- mem_llm-1.0.4.dist-info/RECORD,,
12
+ mem_llm-1.0.5.dist-info/METADATA,sha256=ag7yXwfZNy67fes7pLyrFdPSAgGoZIvKgFPTx7ZSANo,6505
13
+ mem_llm-1.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
14
+ mem_llm-1.0.5.dist-info/top_level.txt,sha256=_fU1ML-0JwkaxWdhqpwtmTNaJEOvDMQeJdA8d5WqDn8,8
15
+ mem_llm-1.0.5.dist-info/RECORD,,