Skip to content

refactor: optimize the TS of SSEOutput and RequestFnInfo #272

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

Merged
merged 5 commits into from
Nov 29, 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
24 changes: 5 additions & 19 deletions components/useXAgent/index.en-US.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ Custom request protocol.
```tsx | pure
interface RequestFnInfo<Message> extends Partial<XAgentConfigPreset>, AnyObject {
messages?: Message[];
message?: Message;
}

type RequestFn<Message> = (
Expand All @@ -67,22 +68,7 @@ type RequestFn<Message> = (

### Agent

| Property | Description | Type | Version |
| ------------ | ------------------------------------------ | -------------- | ------- |
| request | Call the configured request of `useXAgent` | AgentRequestFn | |
| isRequesting | Check if it is requesting | () => boolean | |

```tsx | pure
interface AgentRequestFnInfo<Message> extends Partial<XAgentConfigPreset>, AnyObject {
messages?: Message[];
}

type AgentRequestFn<AgentMessage> = (
info: AgentRequestFnInfo<Message>,
callbacks: {
onUpdate: (message: AgentMessage) => void;
onSuccess: (message: AgentMessage) => void;
onError: (error: Error) => void;
},
) => void;
```
| Property | Description | Type | Version |
| ------------ | ------------------------------------------ | ------------- | ------- |
| request | Call the configured request of `useXAgent` | RequestFn | |
| isRequesting | Check if it is requesting | () => boolean | |
1 change: 1 addition & 0 deletions components/useXAgent/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { AnyObject } from '../_util/type';

interface RequestFnInfo<Message> extends Partial<XAgentConfigPreset>, AnyObject {
messages?: Message[];
message?: Message;
}

export type RequestFn<Message> = (
Expand Down
24 changes: 5 additions & 19 deletions components/useXAgent/index.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ type useXAgent<AgentMessage> = (
```tsx | pure
interface RequestFnInfo<Message> extends Partial<XAgentConfigPreset>, AnyObject {
messages?: Message[];
message?: Message;
}

export type RequestFn<Message> = (
Expand All @@ -68,22 +69,7 @@ export type RequestFn<Message> = (

### Agent

| 属性 | 说明 | 类型 | 版本 |
| ------------ | --------------------------- | -------------- | ---- |
| request | 调用 `useXAgent` 配置的请求 | AgentRequestFn | |
| isRequesting | 是否正在请求 | () => boolean | |

```tsx | pure
interface AgentRequestFnInfo<Message> extends Partial<XAgentConfigPreset>, AnyObject {
messages?: Message[];
}

type AgentRequestFn<AgentMessage> = (
info: AgentRequestFnInfo<Message>,
callbacks: {
onUpdate: (message: AgentMessage) => void;
onSuccess: (message: AgentMessage) => void;
onError: (error: Error) => void;
},
) => void;
```
| 属性 | 说明 | 类型 | 版本 |
| ------------ | --------------------------- | ------------- | ---- |
| request | 调用 `useXAgent` 配置的请求 | RequestFn | |
| isRequesting | 是否正在请求 | () => boolean | |
2 changes: 1 addition & 1 deletion components/useXChat/demo/suggestions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ const App = () => {
request: async ({ message }, { onSuccess }) => {
await sleep();

const { content } = message;
const { content } = message || {};

onSuccess({
type: 'ai',
Expand Down
7 changes: 6 additions & 1 deletion components/x-stream/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,19 @@ function splitStream() {
});
}

/**
* @link https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#fields
*/
export type SSEFields = 'data' | 'event' | 'id' | 'retry';

/**
* @example
* const sseObject = {
* event: 'delta',
* data: '{ key: "world!" }',
* };
*/
export type SSEOutput = Record<string, any>;
export type SSEOutput = Partial<Record<SSEFields, any>>;

/**
* @description A TransformStream inst that transforms a part string into {@link SSEOutput}
Expand Down