Skip to main content
Version: 2.x

useAssistant

プラットフォーム

  • ios
  • android

概要

useAssistantはアプリからIM-Copilotを利用するためのHookです。

依存関係

info

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;
      }