Metadata-Version: 2.4
Name: tooltrace-langchain
Version: 0.1.0
Summary: LangChain integration for ToolTrace web intelligence API
Project-URL: Homepage, https://tooltrace.io
Project-URL: Documentation, https://tooltrace.io/docs
Project-URL: Repository, https://github.com/ToolTrace-io/tooltrace-langchain
Author-email: ToolTrace <info@tooltrace.io>
License-Expression: MIT
License-File: LICENSE
Keywords: document-loader,langchain,rag,tooltrace,web-scraping
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: langchain-core>=0.2.0
Requires-Dist: tooltrace>=0.1.0
Description-Content-Type: text/markdown

# ToolTrace LangChain Integration

[LangChain](https://langchain.com) document loader and tools for the [ToolTrace](https://tooltrace.io) web intelligence API. Load webpages as LangChain Documents for RAG pipelines, or give your agents web scraping, SEO audit, and tech stack detection capabilities.

## Install

```bash
pip install tooltrace-langchain
```

## Document Loader

Load webpages as LangChain Documents with clean Markdown content and rich metadata:

```python
from tooltrace_langchain import ToolTraceLoader

loader = ToolTraceLoader(
    urls=[
        "https://example.com/blog/post-1",
        "https://example.com/blog/post-2",
    ],
    api_key="your-key",
)

docs = loader.load()
for doc in docs:
    print(doc.metadata["title"])
    print(doc.page_content[:200])
```

### Document metadata

Each document includes:

- `source`: Final URL after redirects
- `title`: Page title
- `canonical_url`: Canonical URL
- `author`: Author name
- `language`: Content language
- `published_at`: Publication date
- `word_count`: Word count
- `render_method`: Whether static or browser rendering was used
- `content_hash`: Content hash for change detection

## Agent Tools

Give LangChain agents web intelligence capabilities:

```python
from tooltrace_langchain import (
    ToolTraceExtractTool,
    ToolTraceMetadataTool,
    ToolTraceSeoAuditTool,
    ToolTraceTechStackTool,
)

tools = [
    ToolTraceExtractTool(api_key="your-key"),
    ToolTraceMetadataTool(api_key="your-key"),
    ToolTraceSeoAuditTool(api_key="your-key"),
    ToolTraceTechStackTool(api_key="your-key"),
]

# Use with any LangChain agent
from langchain.agents import AgentExecutor, create_tool_calling_agent

agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools)
result = executor.invoke({"input": "What technologies does example.com use?"})
```

## RAG pipeline example

```python
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.text_splitter import RecursiveCharacterTextSplitter

from tooltrace_langchain import ToolTraceLoader

# Load pages
loader = ToolTraceLoader(
    urls=["https://tooltrace.io/docs"],
    api_key="your-key",
)
docs = loader.load()

# Split and index
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = splitter.split_documents(docs)
vectorstore = FAISS.from_documents(chunks, OpenAIEmbeddings())

# Query
results = vectorstore.similarity_search("How does rendering work?")
```

## License

MIT
