Skip to main content

This package contains tools to work with Tilores entity resolution database within Langchain.

Project description

LangChain Using Tilores

This repository provides the building blocks for integrating LangChain, LangGraph, and the Tilores entity resolution system.

Developers can use these tools to create powerful systems that leverage entity resolution for record retrieval, search, and entity resolution.

Examples

  • Human-in-the-Loop Chat: examples/chat

    This example demonstrates how to build a chat application using Chainlit and LangGraph to explore a Tilores instance through natural language. It guides users through search functionality and explains the search results.

  • Basic Usage: examples/basic

    This example shows how to use tools with an LLM model in a basic setup.

Usage

from tilores import TiloresAPI
from tilores_langchain import TiloresTools
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage

# Initialize the Tilores API.
tilores = TiloresAPI.from_environ()
# TiloresTools helps you build typed tools from a specific Tilores instance, typed according to
# the schema of the instance.
tilores_tools = TiloresTools(tilores)

# Setup a LLM model for inference bound with a set of tools.
tools = [tilores_tools.search_tool]
tools_dict = {tool.name: tool for tool in tools}
model = ChatOpenAI(temperature=0, streaming=True, model_name="gpt-4o")
model = model.bind_tools(tools)

# The basic loop works like this, that a list of messages is passed to the LLM
messages = [
    HumanMessage("Find me an entity by the first name Emma, surname Schulz, born on 1988-03-12")
]
ai_message = model.invoke(messages)
messages.append(ai_message)

# And for each AiMessage, you must check if it wants to invoke tools.
for tool_call in ai_message.tool_calls:
    # Perform the tool call and append the ToolMessage to the list of messages
    selected_tool = tools_dict[tool_call['name']]
    tool_message = selected_tool.invoke(tool_call)
    messages.append(tool_message)

# Then continue the basic loop by invoking the LLM with the current state, passing the list of messages.
ai_response = model.invoke(messages)
print(ai_response.content)
$ cd examples/basic/
$ pip install -r requirements.txt
$ python llm_with_tools.py
I found multiple records for an entity with the first name Emma, surname Schulz, born on 1988-03-12. Here are the details:

1. **Record ID:** cc001001-0006-4000-c000-000000000006
   - **First Name:** Emma
   - **Last Name:** Schulz
   - **Date of Birth:** 1988-03-12

2. **Record ID:** cc001001-0002-4000-c000-000000000002
   - **First Name:** Emma
   - **Last Name:** Schulz
   - **Date of Birth:** 1988-03-12

[... snip ...]

If you need more specific information or further assistance, please let me know!

Provided tools

  • tilores_search

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tilores_langchain-0.2.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

tilores_langchain-0.2.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file tilores_langchain-0.2.0.tar.gz.

File metadata

  • Download URL: tilores_langchain-0.2.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for tilores_langchain-0.2.0.tar.gz
Algorithm Hash digest
SHA256 23882ba5e770dde16975bbe4da8e5d53becf07da653e77b403682357b3961bee
MD5 244b2ec985787076eac0530ae391346e
BLAKE2b-256 47b9fb1ee1edfff36fdc5c4b785c24827d2aaf50540c1762c034dd09dbe243e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tilores_langchain-0.2.0.tar.gz:

Publisher: publish.yml on tilotech/tilores-langchain

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tilores_langchain-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tilores_langchain-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7ec544ea61d39151c017ae411d225d66f27a48933814f3a41917dea96bbdba2
MD5 e786fa65a477e3532de3d51de5cc965d
BLAKE2b-256 6101f49b9abb749b0fb868ea54c10345d5ed93fb82a76d0b024f816008274de2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tilores_langchain-0.2.0-py3-none-any.whl:

Publisher: publish.yml on tilotech/tilores-langchain

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page