Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Update contributing and README documentation #167

Merged
merged 5 commits into from
Nov 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
```
Expand All @@ -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

Expand Down
122 changes: 75 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,87 +1,115 @@
<p align="center">
<img src="https://a.inferable.ai/logo-hex.png" width="200" style="border-radius: 10px" />
</p>
![Inferable Hero](./assets/hero.png)

<div align="center">

[![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)

</div>

# 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

Expand Down
Binary file added assets/deployment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/hero.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.