diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 046cd1fb..17de4c5d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -47,6 +47,7 @@ We maintain different code style guidelines for each programming language in the - Reference any relevant issues or PRs in the message Example: + ``` Fix: Resolve memory leak in function pre-processor (#123) ``` @@ -73,14 +74,13 @@ Fix: Resolve memory leak in function pre-processor (#123) - Use Pull Requests for code contributions - Be respectful and constructive in all communications - Tag relevant maintainers when needed -- Seek help in the [Discord](https://go.inferable.ai/discord) ## Questions? If you have questions about contributing, feel free to: + - Open an issue with your question - Ask in the relevant Pull Request -- Contact the maintainers via [Discord](https://go.inferable.ai/discord) ## License diff --git a/README.md b/README.md index ad20cee5..794e8791 100644 --- a/README.md +++ b/README.md @@ -1,87 +1,115 @@ -

- -

+![Inferable Hero](./assets/hero.png)
-[![Website](https://img.shields.io/badge/website-inferable.ai-blue)](https://inferable.ai) [![Documentation](https://img.shields.io/badge/docs-inferable.ai-brightgreen)](https://docs.inferable.ai/) [![Discord](https://img.shields.io/badge/community-Discord-blue)](https://go.inferable.ai/discord) [![Slack](https://img.shields.io/badge/enterprise-Slack-blue)](https://go.inferable.ai/slack) +[![Website](https://img.shields.io/badge/website-inferable.ai-blue)](https://inferable.ai) [![Documentation](https://img.shields.io/badge/docs-inferable.ai-brightgreen)](https://docs.inferable.ai/) ![NPM Version](https://img.shields.io/npm/v/inferable?color=32CD32) ![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/inferablehq/inferable?filename=sdk-go%2Fgo.mod&color=32CD32) ![NuGet Version](https://img.shields.io/nuget/v/inferable?color=32CD32)
-# Introduction +# About Inferable -Inferable is a developer platform that makes it easy to build and deploy reliable, secure LLM-based applications. +Inferable is an open source platform that helps you build reliable LLM-powered agentic automations at scale. ## Key Features -🚀 **[2-Minute Setup](https://docs.inferable.ai/pages/quick-start)**: Get started in minutes with our [managed platform](https://app.inferable.ai) - wrap your existing functions, REST APIs and GraphQL endpoints as tools. +- Managed Agent Runtime - ReAct-like agent runtime powered by your own functions +- Durable Tool Calling - Recover from failures, load balance across compute, cache results +- Zero Network Config - No inbound connections or networking required +- Multiple Language Support - Native SDKs for TypeScript, Go, .NET and more +- Fully Open Source - MIT licensed and self-hostable -🤖 **[Managed Agent Runtime](https://docs.inferable.ai/pages/runs)**: Managed [ReAct](https://www.promptingguide.ai/techniques/react)-like agent runtime powered by your own functions. +![Deployment](./assets/deployment.png) -⚡️ **[Durable Tool Calling](https://docs.inferable.ai/pages/functions)**: Our durable execution engine helps you agents recover from tool-calling failures, load balance across your compute, and caches results for fast re-runs. +## Powered by your code -🛡️ **[Zero Network Config](https://docs.inferable.ai/pages/no-incoming-connections)**: No inbound connections or networking config required - your compute runs securely behind your firewall, and polls Inferable for instructions. +Automations are powered by your greenfield or brownfield code. Agent capabilities are defined by your own functions. -💻 **[Your Infrastructure](https://docs.inferable.ai/pages/on-premise)**: All functions run on your Infrastructure - Keep sensitive data and compute on-premise while leveraging our agent runtime. Inferable can't see or access any runtime information or environment variables. +**1. Define one or more functions that can be called by an automation** -🔌 **Multiple Language Support**: Native SDKs for TypeScript, Go, .NET and more coming soon - integrate with your existing codebase in minutes. +```typescript +async function readWebPage({ url }: { url: string }) { + const browser = await chromium.launch(); + const page = await browser.newPage(); + await page.goto(url); + return await page.content(); +} +``` -## Get Started +**2. Register the function with Inferable** -### Inferable Cloud +```typescript +inferable.default.register({ + name: "readWebPage", + func: readWebPage, + input: z.object({ + url: z.string(), + }), +}); +``` -Managed deployment of Inferable built for high availability and security. Inferable Cloud includes a [generous free teir](https://inferable.ai/pricing) and requires no credit card to get started. +**3. Create a run that uses the function** -[Inferable Cloud](https://app.inferable.ai). +```typescript +inferable.run({ + initialPrompt: ` + Produce me a list of all the open source projects + at https://news.ycombinator.com/show, with their + github url, programming language and fork count. + `, + resultSchema: z.array( + z.object({ + url: z.string().regex(/^https:\/\/github\.com\/.*$/), + language: z.string(), + forkCount: z.number(), + }) + ), + // attachedFunctions: ["readWebPage"], // Optional, defaults to all registered functions +}); +``` -### Open-source +## Getting Started -Inferable is 100% open-source and self-hostable. +Check out our [quick start guide](https://docs.inferable.ai/pages/quick-start) for a step-by-step guide on how to get started with creating your first automation. -[Self hosting guide](https://docs.inferable.ai/pages/self-hosting) +## Self Hosting -## SDKs +Inferable is 100% open-source and self-hostable. See our [self hosting guide](https://docs.inferable.ai/pages/self-hosting) for more details. -- [Node.js / TypeScript SDK](./sdk-node/README.md) -- [Go SDK](./sdk-go/README.md) -- [.NET SDK](./sdk-dotnet/README.md) -- [React SDK](./sdk-react/README.md) +## Language Support -Each SDK directory contains its own README with specific installation instructions, quick start guide, and usage examples. +- [Node.js / TypeScript](./sdk-node/README.md) ([Quick start](./sdk-node/README.md#quick-start)) +- [Go](./sdk-go/README.md) ([Quick start](./sdk-go/README.md#quick-start)) +- [.NET](./sdk-dotnet/README.md) ([Quick start](./sdk-dotnet/README.md#quick-start)) +- [React](./sdk-react/README.md) ([Quick start](./sdk-react/README.md#quick-start)) -### Quick Start +## Documentation -For language-specific quick start guides, please refer to the README in each SDK's directory: +For comprehensive documentation on using Inferable AI, please visit our [official documentation](https://docs.inferable.ai/). -- [Node.js / TypeScript Quick Start](./sdk-node/README.md#quick-start) -- [Go Quick Start](./sdk-go/README.md#quick-start) -- [.NET Quick Start](./sdk-dotnet/README.md#quick-start) -- [React Quick Start](./sdk-react/README.md#quick-start) +## Open Source -### SDK Feature Comparison +This repository contains the Inferable control-plane, as well as SDKs for various languages. -### Core Features +**Core services:** -| Feature | Node.js | Go | .NET | React | -| --------------------------------------------------------------- | :-----: | :-: | :--: | :---: | -| Register [Functions](https://docs.inferable.ai/pages/functions) | ✅ | ✅ | ✅ | ❌ | -| Create [Runs](https://docs.inferable.ai/pages/runs) | ✅ | ✅ | ✅ | ✅ | +- `/control-plane` - The core Inferable control plane service +- `/app` - Web console/dashboard application +- `/cli` - Command-line interface tool -### Advanced Features +**SDKs:** -| Feature | Node.js | Go | .NET | -| ------------------------------------------------------------------------------------------------------ | :-----: | :-: | :--: | -| [Cached](https://docs.inferable.ai/pages/functions#config-cache) results | ✅ | ❌ | ❌ | -| Call [Timeouts](https://docs.inferable.ai/pages/functions#config-timeoutseconds) | ✅ | ❌ | ❌ | -| Call [Retries](https://docs.inferable.ai/pages/functions#config-retrycountonstall) | ✅ | ❌ | ❌ | -| Call [Approval](https://docs.inferable.ai/pages/functions#approvalrequest) (Human in the loop) | ✅ | ❌ | ❌ | -| [Auth / Run Context](https://docs.inferable.ai/pages/runs#context) | ✅ | ❌ | ❌ | +- `/sdk-node` - Node.js/TypeScript SDK +- `/sdk-go` - Go SDK +- `/sdk-dotnet` - .NET SDK +- `/sdk-react` - React SDK -## Documentation +**Bootstrap templates:** -For comprehensive documentation on using Inferable AI, please visit our [official documentation](https://docs.inferable.ai/). +- `/bootstrap-node` - Node.js bootstrap application template +- `/bootstrap-go` - Go bootstrap application template +- `/bootstrap-dotnet` - .NET bootstrap application template ## Contributing diff --git a/assets/deployment.png b/assets/deployment.png new file mode 100644 index 00000000..0f01909d Binary files /dev/null and b/assets/deployment.png differ diff --git a/assets/hero.png b/assets/hero.png new file mode 100644 index 00000000..1697cea1 Binary files /dev/null and b/assets/hero.png differ