useAssistant
プラットフォーム
- ios
- android
概要
useAssistantはアプリからIM-Copilotを利用するためのHookです。
依存関係
備考
Smartlimeは全てのProviderを包括しているため、Smartlimeが配置されている場合にはこの項目の内容は無視することができます。
IM-Copilotとの通信にIMFetchを使用するため、この機能を利用するより前にOAuth認証が完了している必要があります。
そのためこの機能は常に使用するコンポーネントより上位層にIMOAuthを配置していなければなりません。
import { IMTenant, IMOAuth, useAssistantt } from '@intra-mart/smartlime';
import { DefaultAuthScreen } from '@intra-mart/smartlime-ui';
import { Button } from 'react-native';
const ChildComponent = () => {
const { run } = useAssistantt('assistantId', 'threadId');
const onPress = async () => {
const assistantRequest = {
message: {
role: 'user',
contents: 'こんにちは',
},
};
const assistantCallback = (message, isFinish) => {
(message, isFinish) => {
console.log('message', message);
console.log('isFinish', isFinish);
};
};
const result = await run(assistantRequest, assistantCallback);
};
return <Button title={'Button'} onPress={onPress} />;
};
const App = () => {
return (
<IMTenant baseUrl={'https://example.org/imart'} tenantId={'default'}>
<IMOAuth
requestConfig={{
clientId: 'exampleId',
clientSecret: 'exampleSecret',
scopes: ['exampleScope'],
redirectUri: 'exp://example.org:19000',
}}
>
<DefaultAuthScreen>
<ChildComponent />
</DefaultAuthScreen>
</IMOAuth>
</IMTenant>
);
};
Arguments
(assistantId: string, threadId: string)
Returns
run
- Arguments
(assistantRequest: AssistantRequest, callback: AssistantCallback)
interface RequestMessage {
role: string;
contents: string | null;
toolCalls?: unknown;
additional?: unknown;
}
interface AssistantRequest {
message: RequestMessage;
}
type AssistantCallback = (message: ResponseMessage, finish: boolean) => void;
- useAssistanttに与えられたassistantIdとthreadIdを元にIM-Copilotのアシスタントにメッセージを送信します。
- このFunctionはアシスタントからの返信があるたびにcallbackを呼び出します。
- callbackの第二引数はアシスタントが終了したかどうかを示します。
- callbackはchunk毎に実行されるため最終的な結果を取得するためにはmessageを結合する必要があります。
- Returns
Promise<AssistantSuccess | AssistantError>
interface AssistantSuccess {
type: 'success';
}
interface AssistantError {
type: 'error';
error: Error;
}
deleteThread
- スレッドの履歴を削除します。
- Returns
Promise<void>
getThreadHistory
- スレッドの履歴を取得します。
- Returns
Promise<GetAssistantHistoryError | GetAssistantHistorySuccess<unknown>>
interface AssistantHistory {
role: string;
contents: string;
toolCalls: [
{
id: string;
type: string;
function: {
name: string;
arguments: string;
};
}
];
additional: unknown[];
}
interface GetAssistantHistorySuccess {
type: 'success';
history: AssistantHistory[];
}
interface GetAssistantHistoryError {
type: 'error';
error: Error;
}
getAssistantMetaData
- アシスタントのメタデータを取得します。
- Returns
Promise<GetAssistantMetaDataSuccess | GetAssistantMetaDataError>
interface AssistantMetaData {
assistantClass: string;
assistantType: string;
description: string;
name: string;
parameter: unknown;
listEnable: boolean;
storeMessage: boolean;
}
interface GetAssistantMetaDataSuccess {
type: 'success';
metaData: AssistantMetaData;
}
interface GetAssistantMetaDataError {
type: 'error';
error: Error;
}
getAssistantsMetaData
- 全てのアシスタントのメタデータを取得します。
- Returns
Promise<GetAssistantsMetaDataSuccess< | GetAssistantsMetaDataError>
interface AssistantMetaData {
assistantClass: string;
assistantType: string;
description: string;
name: string;
parameter: unknown;
listEnable: boolean;
storeMessage: boolean;
}
interface GetAssistantsMetaDataSuccess {
type: 'success';
metaDataList: AssistantMetaData[];
}
interface GetAssistantsMetaDataError {
type: 'error';
error: Error;
}