Nancy1906 commited on
Commit
60a623c
Β·
verified Β·
1 Parent(s): 1b50e40
Files changed (1) hide show
  1. my_tools.py +12 -9
my_tools.py CHANGED
@@ -1,35 +1,38 @@
1
  import os, math, wikipedia
2
  import google.generativeai as genai
3
- from llama_index.core.llms import LLM
4
- from llama_index.llms.generic_utils import llm_completion_to_chat_response
5
  from llama_index.core.agent import ReActAgent
6
  from llama_index.core.tools import FunctionTool
7
  from duckduckgo_search import DDGS
8
 
9
- # ── Configurar clave de Google Gemini (asegΓΊrate de tener el secreto GEMINI_API_KEY) ──
10
  genai.configure(api_key=os.getenv("GEMINI_API_KEY", ""))
11
 
12
  class GeminiLLM(LLM):
13
- """Wrapper minimal para usar GeminiΒ 1.5Β Flash con LlamaIndex."""
14
-
15
  def __init__(self, model: str = "models/gemini-1.5-flash-latest"):
16
  self.model = genai.GenerativeModel(model)
17
 
18
  def chat(self, messages, **kwargs):
19
  prompt = "\n".join(
20
- [("User: " if m.role == "user" else "Assistant: ") + m.content for m in messages]
 
21
  ) + "\nAssistant:"
22
  resp = self.model.generate_content(prompt)
23
- return llm_completion_to_chat_response(resp.text)
 
 
 
24
 
25
  # ── Instanciar el LLM ──
26
  llm = GeminiLLM()
27
 
28
  # ── Herramientas auxiliares ──
29
-
30
  def buscar_web(query: str) -> str:
31
  with DDGS() as ddgs:
32
- results = list(ddgs.text(query, region="es-es", safesearch="moderate", timelimit="y", max_results=3))
 
 
33
  if results:
34
  return "\n".join([f"{r['title']}: {r['body']}" for r in results])
35
  return "No se encontraron resultados."
 
1
  import os, math, wikipedia
2
  import google.generativeai as genai
3
+ from llama_index.core.llms import LLM, ChatMessage, ChatResponse
 
4
  from llama_index.core.agent import ReActAgent
5
  from llama_index.core.tools import FunctionTool
6
  from duckduckgo_search import DDGS
7
 
8
+ # ── Configurar clave de Google Gemini ──
9
  genai.configure(api_key=os.getenv("GEMINI_API_KEY", ""))
10
 
11
  class GeminiLLM(LLM):
12
+ """Wrapper minimal para usar Gemini 1.5 Flash con LlamaIndex."""
 
13
  def __init__(self, model: str = "models/gemini-1.5-flash-latest"):
14
  self.model = genai.GenerativeModel(model)
15
 
16
  def chat(self, messages, **kwargs):
17
  prompt = "\n".join(
18
+ [("User: " if m.role == "user" else "Assistant: ") + m.content
19
+ for m in messages]
20
  ) + "\nAssistant:"
21
  resp = self.model.generate_content(prompt)
22
+ return ChatResponse(
23
+ message=ChatMessage(role="assistant", content=resp.text),
24
+ raw=resp
25
+ )
26
 
27
  # ── Instanciar el LLM ──
28
  llm = GeminiLLM()
29
 
30
  # ── Herramientas auxiliares ──
 
31
  def buscar_web(query: str) -> str:
32
  with DDGS() as ddgs:
33
+ results = list(ddgs.text(query, region="es-es",
34
+ safesearch="moderate", timelimit="y",
35
+ max_results=3))
36
  if results:
37
  return "\n".join([f"{r['title']}: {r['body']}" for r in results])
38
  return "No se encontraron resultados."