Skip to content

Commit a639c7d

Browse files
committed
docs: Update README
1 parent 3c746ba commit a639c7d

File tree

1 file changed

+11
-48
lines changed

1 file changed

+11
-48
lines changed

README.md

Lines changed: 11 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Inferable
66

7-
The managed LLM-engineering platform for production-ready AI applications.
7+
Build reliable AI Workflows with humans in the loop
88

99
![NPM Version](https://img.shields.io/npm/v/inferable?color=32CD32&style=for-the-badge) ![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/inferablehq/inferable?filename=sdk-go%2Fgo.mod&color=32CD32&style=for-the-badge) ![NuGet Version](https://img.shields.io/nuget/v/inferable?color=32CD32&style=for-the-badge)
1010
![License](https://img.shields.io/github/license/inferablehq/inferable?color=32CD32&style=for-the-badge)
@@ -13,7 +13,7 @@ The managed LLM-engineering platform for production-ready AI applications.
1313

1414
## What is Inferable?
1515

16-
Inferable is a fully managed platform that handles state, reliability, and orchestration of custom LLM-based applications. It's developer-first and API-driven, providing production-ready LLM primitives for building sophisticated LLM-based applications.
16+
Inferable is a managed durable execution runtime for creating AI workflows with humans in the loop. Create structured outputs from any LLM, ask humans for approval via Slack or Email, with versioned, long-running workflows for backwards compatibility.
1717

1818
![Timeline View](./assets/workflow-list.png)
1919

@@ -53,24 +53,6 @@ workflow.version(2).define(async (ctx, input) => {
5353
});
5454
```
5555

56-
### 🏗️ Structured Outputs with automatic parsing, validation, and retries
57-
58-
Inferable automatically parses and validates structured outputs, and retries failed executions. See [Structured Outputs](https://docs.inferable.ai/pages/structured-outputs).
59-
60-
```typescript
61-
workflow.version(1).define(async (ctx, input) => {
62-
const { ticketType } = ctx.llm.structured({
63-
input: `Ticket text: ${input.ticketText}`,
64-
schema: z.object({
65-
ticketType: z.enum(["data-deletion", "refund", "other"]),
66-
}),
67-
});
68-
69-
// do something with the items
70-
console.log(ticketType);
71-
});
72-
```
73-
7456
### 🧑‍💼 Human-in-the-Loop with approval workflows
7557

7658
Inferable allows you to integrate human approval and intervention with full context preservation. See [Human-in-the-Loop](https://docs.inferable.ai/pages/human-in-the-loop).
@@ -96,41 +78,21 @@ deleteUserWorkflow.version(1).define(async (ctx, input) => {
9678
});
9779
```
9880

99-
### 🤖 Agents with Tool Use
81+
### 🏗️ Structured Outputs with automatic parsing, validation, and retries
10082

101-
Inferable agents can use tools to achieve pre-defined goals. See [Agents](https://docs.inferable.ai/pages/agents).
83+
Inferable automatically parses and validates structured outputs, and retries failed executions. See [Structured Outputs](https://docs.inferable.ai/pages/structured-outputs).
10284

10385
```typescript
104-
const agentInstructions = `
105-
Evaluate the provided support ticket body and extract the user from the database.
106-
107-
When searching for users, if you don't get specific results, try to search with a more general term with sub strings with unique nouns.
108-
For example, "John Smith": searchUser("John Smith"), searchUser("John"), searchUser("Smith"), etc.
109-
`;
110-
111-
workflow.tools.register({
112-
name: "searchUser",
113-
schema: z.object({
114-
userId: z.string(),
115-
}),
116-
handler: async (ctx, input) => {
117-
// your own code to search for the user
118-
},
119-
});
120-
12186
workflow.version(1).define(async (ctx, input) => {
122-
const { userId } = await ctx.llm.agents.react({
123-
name: "restaurantSearch",
124-
instructions: agentInstructions,
125-
input: JSON.stringify({ ticket }),
126-
tools: ["searchUser"],
127-
resultSchema: z.object({
128-
userId: z.string(),
87+
const { ticketType } = ctx.llm.structured({
88+
input: `Ticket text: ${input.ticketText}`,
89+
schema: z.object({
90+
ticketType: z.enum(["data-deletion", "refund", "other"]),
12991
}),
13092
});
13193

132-
// do something with the userId
133-
console.log(userId);
94+
// do something with the items
95+
console.log(ticketType);
13496
});
13597
```
13698

@@ -139,6 +101,7 @@ And more stuff...
139101
- [Notifications](https://docs.inferable.ai/pages/notifications) to send notifications to users via Slack or Email.
140102
- [Memoized Results](https://docs.inferable.ai/pages/results) to cache the results of side-effects and expensive operations in a distributed way.
141103
- [Obervability](https://docs.inferable.ai/pages/observability) in a timeline view, or plug into your own observability tools.
104+
- [Agents](https://docs.inferable.ai/pages/agents) to create agents that can use tools to achieve pre-defined goals.
142105
- Developer-friendly SDKs in [Node.js](./sdk-node/README.md), and [Go](./sdk-go/README.md) supported with more languages coming soon.
143106

144107
![Workflow Timeline](./assets/workflow-timeline.png)

0 commit comments

Comments
 (0)