SharePoint
SharePoint site の document を Squid AI agent 用の検索可能な knowledge として index 化します
SharePoint Connector の Functionality
SharePoint connector は organization の SharePoint document library から document を knowledge base に読み込み、Squid AI agent がその content を使用して question に answer できるようにします。
- index 化する document または folder を選択します。folder を index 化すると、その内部のすべての file が recursive に index 化されます。
- Squid は index 済み content を自動的に sync し、変更、追加、削除された file を 10 分ごとに反映します。
- SharePoint connector に接続された AI agent は、index 済み content を semantic search し、index 済み document を list 化できます。
- Squid は SharePoint 固有の permission を尊重できるため、agent は chat 中の person が SharePoint で開ける document のみを retrieve します。Respecting source permissionsを参照してください。
- access は read-only です。Squid が SharePoint site に write することはありません。
Microsoft Entra App Registration の作成
connector は application permission を持つ app registration を使用して authenticate します(per-user sign-in は不要です)。
-
Azure Portal で App registrations に移動し、New registration をクリックします。
-
作成後、Overview tab で Application (client) ID と Directory (tenant) ID を控えます。
-
Certificates & secrets で新しい client secret を作成し、その value を保存します。client secret には expiration があります(default は 6 か月、最大 24 か月)。secret の期限が切れると sync は停止します。追跡できる expiry を選び、それまでに Squid Console で connector を新しい secret に update してください。
-
API permissions で、site と file への read access を付与する Microsoft Graph application permission(
Sites.Read.AllとFiles.Read.All)を追加してから、admin consent を付与します。agent に SharePoint permission を尊重させるには、Squid が各 document の share 先を resolve できるよう、directory の user と group に対する read access も app registration に付与します。
Squid Application に SharePoint Connector を追加する
-
Squid Console の Connectors tab に移動します。
-
Available Connectors をクリックします。
-
SharePoint connector を見つけ、Add Connector を選択します。
-
次の configuration detail を指定します。
Connector ID: code 内で connector を一意に識別する string。この値は後から変更できません。
Client ID: app registration の Application (client) ID。
Tenant ID: app registration の Directory (tenant) ID。
Client Secret: 作成した client secret。Squid secret として安全に保存されます。
Document の Indexing
document は、@squidcloud/sharepoint-client package を使用して programmatically に index 化します。document または folder は SharePoint の site ID、drive ID、item ID で指定します。
npm install @squidcloud/sharepoint-client
import { SharePointClient, encodeSharePointLocation } from '@squidcloud/sharepoint-client';
const sharepoint = new SharePointClient(squid, 'SHAREPOINT_CONNECTOR_ID');
// Index a document or an entire folder (recursive)
const errors = await sharepoint.indexDocumentOrFolder({
siteId: 'SITE_ID',
driveId: 'DRIVE_ID',
itemId: 'ITEM_ID',
});
// List everything that has been indexed
const documents = await sharepoint.listIndexedDocuments();
// Remove a document or folder from the index by its listed ID...
await sharepoint.unindexDocumentOrFolder(documents[0].id);
// ...or address it directly by encoding its location
await sharepoint.unindexDocumentOrFolder(encodeSharePointLocation('SITE_ID', 'DRIVE_ID', 'ITEM_ID'));
index 化後、document は background sync により自動的に最新の状態に保たれます。
AI Agent で SharePoint Connector を使用する
No-code Studio
-
Squid Console の Studio tab に移動します。
-
Create AI Agent をクリックします。
-
"docs-agent"や"This agent answers questions using our SharePoint documents"などの agent ID と description を指定します。 -
Add Abilities をクリックし、Storage section まで scroll して、先ほど作成した SharePoint connector を選択します。
-
「user が SharePoint に保存された content について尋ねる場合にこれを call する」など、agent がこの connection を使用する方法の description を指定します。
-
Test をクリックし、index 済み document に関する question を agent に尋ねてみます。
Squid SDK を使用する
Squid SDK を使用して AI agent を作成する場合は、ask() function の connectedIntegrations option に SharePoint connector を追加して接続します。
- TypeScript
- Python
await this.squid
.ai()
.agent('AGENT_ID')
.ask('What does our expense policy say about travel?', {
connectedIntegrations: [
{
integrationId: 'SHAREPOINT_CONNECTOR_ID',
integrationType: 'sharepoint',
description: 'Call this connector to search our SharePoint documents',
},
],
});
await squid.ai().agent('AGENT_ID').ask(
'What does our expense policy say about travel?',
options={
'connectedIntegrations': [
{
'integrationId': 'SHAREPOINT_CONNECTOR_ID',
'integrationType': 'sharepoint',
'description': 'Call this connector to search our SharePoint documents',
}
]
},
)