langchain-aluvia-webbrowser
Version:
A LangChain WebBrowser tool that uses Aluvia mobile connectivity to browse websites and extract information
138 lines (102 loc) • 5.78 kB
Markdown
A LangChain WebBrowser tool that uses [Aluvia](https://www.aluvia.io/) mobile connectivity to browse websites and extract information. This tool is fully compatible with LangChain's WebBrowser and can be used as a drop-in replacement.
The tool is described to agents as:
> "aluvia-powered web browser - useful for when you need to find something on or summarize a webpage. input should be a comma separated list of 'valid URL including protocol','what you want to find on the page or empty string for a summary'."
```bash
npm install langchain-aluvia-webbrowser
```
You need an Aluvia account and token. Get yours at [https://dashboard.aluvia.io/credentials](https://dashboard.aluvia.io/credentials).
```typescript
import AluviaWebBrowser from "langchain-aluvia-webbrowser";
import { ChatOpenAI, OpenAIEmbeddings } from "@langchain/openai";
export async function run() {
const model = new ChatOpenAI({ model: "gpt-4o-mini", temperature: 0 });
const embeddings = new OpenAIEmbeddings();
const browser = new AluviaWebBrowser({
model,
embeddings,
aluviaToken: "your-aluvia-token", // or set ALUVIA_TOKEN env var
});
const result = await browser.invoke(
`"https://www.themarginalian.org/2015/04/09/find-your-bliss-joseph-campbell-power-of-myth","who is joseph campbell"`
);
console.log(result);
/*
Joseph Campbell was a mythologist and writer who discussed spirituality, psychological archetypes, cultural myths, and the mythology of self. He sat down with Bill Moyers for a lengthy conversation at George Lucas’s Skywalker Ranch in California, which continued the following year at the American Museum of Natural History in New York. The resulting 24 hours of raw footage were edited down to six one-hour episodes and broadcast on PBS in 1988, shortly after Campbell’s death, in what became one of the most popular in the history of public television.
Relevant Links:
- [The Holstee Manifesto](http://holstee.com/manifesto-bp)
- [The Silent Music of the Mind: Remembering Oliver Sacks](https://www.themarginalian.org/2015/08/31/remembering-oliver-sacks)
- [Joseph Campbell series](http://billmoyers.com/spotlight/download-joseph-campbell-and-the-power-of-myth-audio/)
- [Bill Moyers](https://www.themarginalian.org/tag/bill-moyers/)
- [books](https://www.themarginalian.org/tag/books/)
*/
}
```
```typescript
import { OpenAI, OpenAIEmbeddings } from "@langchain/openai";
import { initializeAgentExecutorWithOptions } from "@langchain/classic/agents";
import { Calculator } from "@langchain/community/tools/calculator";
import { SerpAPI } from "@langchain/community/tools/serpapi";
import AluviaWebBrowser from "langchain-aluvia-webbrowser";
export const run = async () => {
const model = new OpenAI({ temperature: 0 });
const embeddings = new OpenAIEmbeddings();
const tools = [
new SerpAPI(process.env.SERPAPI_API_KEY, {
location: "Austin,Texas,United States",
hl: "en",
gl: "us",
}),
new Calculator(),
await AluviaWebBrowser.create({
model,
embeddings,
aluviaToken: "your-aluvia-token",
}),
];
const executor = await initializeAgentExecutorWithOptions(tools, model, {
agentType: "zero-shot-react-description",
verbose: true,
});
console.log("Loaded agent.");
const input = `What is the word of the day on merriam webster. What is the top result on google for that word`;
console.log(`Executing with input "${input}"...`);
const result = await executor.invoke({ input });
/*
Entering new agent_executor chain...
I need to find the word of the day on Merriam Webster and then search for it on Google
Action: web-browser
Action Input: "https://www.merriam-webster.com/word-of-the-day", ""
Summary: Merriam-Webster is a website that provides users with a variety of resources, including a dictionary, thesaurus, word finder, word of the day, games and quizzes, and more. The website also allows users to log in and save words, view recents, and access their account settings. The Word of the Day for April 14, 2023 is "lackadaisical", which means lacking in life, spirit, or zest. The website also provides quizzes and games to help users build their vocabulary.
Relevant Links:
- [Test Your Vocabulary](https://www.merriam-webster.com/games)
- [Thesaurus](https://www.merriam-webster.com/thesaurus)
- [Word Finder](https://www.merriam-webster.com/wordfinder)
- [Word of the Day](https://www.merriam-webster.com/word-of-the-day)
- [Shop](https://shop.merriam-webster.com/?utm_source=mwsite&utm_medium=nav&utm_content=
I now need to search for the word of the day on Google
Action: search
Action Input: "lackadaisical"
lackadaisical implies a carefree indifference marked by half-hearted efforts. lackadaisical college seniors pretending to study. listless suggests a lack of ...
Finished chain.
*/
};
```
- `ALUVIA_TOKEN`: Your Aluvia API token (required if not passed to constructor)
## Configuration
The `AluviaWebBrowser` accepts all the same configuration options as LangChain's `WebBrowser`, plus:
- `aluviaToken` (string, optional): Your Aluvia API token. If not provided, it will use the `ALUVIA_TOKEN` environment variable.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
MIT
## Support
- [Aluvia Documentation](https://docs.aluvia.io)
- [LangChain WebBrowser Tool Documentation](https://docs.langchain.com/oss/javascript/integrations/tools/webbrowser)
- [LangChain Documentation](https://js.langchain.com/)
- [GitHub Issues](https://github.com/aluvia-connect/langchain-aluvia-webbrowser/issues)