In this example, we create a very basic tool that can call our HelixDB queries using Gemini. You can
read more at https://ai.google.dev/gemini-api/docs/function-calling
from google import genai
from google.genai import types
import dotenv
import os
dotenv.load_dotenv()
def search_similar_professors_by_research_area_and_description(query: str) -> dict:
"""Takes the user's query and embeds it then uses the embedded query to search for similar professors
Args:
query (str): The user's query
Returns:
A list of professors who are similar to the user's query
"""
embedded_query_vector = model.encode(query).astype(float).tolist()
results = db.query("search_similar_professors_by_research_area_and_description", {"query_vector": embedded_query_vector, "k": 5})
return results
client = genai.Client()
config = types.GenerateContentConfig(
tools=[search_similar_professors_by_research_area_and_description]
)
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Find me a professor who does computer vision for basketball",
config=config,
)
print(response.text)