Open glenq opened 2 months ago
If you set KernelMemory__DataIngestion__OrchestrationType
to Distributed
and set your KernelMemory__DataIngestion__DistributedOrchestration__QueueType
to AzureQueue
, the following queues are either created or need to be created (in the case where you're using Managed Identity with a data only role):
If you set
KernelMemory__DataIngestion__OrchestrationType
toDistributed
and set yourKernelMemory__DataIngestion__DistributedOrchestration__QueueType
toAzureQueue
, the following queues are either created or need to be created (in the case where you're using Managed Identity with a data only role):
- extract
- extract-poison
- gen-embeddings
- gen-embeddings-poison
- partition
- partition-poison
- private-delete-document
- private-delete-document-poison
- private-delete-index
- private-delete-index-poison
- save-embeddings
- save-embeddings-poison
- summarize
- summarize-poison
@jourdant Thank you for your reply. May I ask where I can find these queue names (Documentation or code)? Because I also need to create an Azure AI Search index, but I'm unsure about which fields I need to create for the index.
Honestly I have no idea! I suspect the SK SDK must be creating these automatically. The only reason I know these exist is that they've popped up in my environment.
I've been working on a more production-ready template based on this template. Part of that is locking down the permissions which means I also have to create a lot of these resources at deployment time like you. For the Azure AI Search Indexes, here are the json definitions you need to create the two indexes:
{
"name": "chatmemory",
"defaultScoringProfile": null,
"fields": [
{
"name": "id",
"type": "Edm.String",
"searchable": true,
"filterable": true,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": true,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
},
{
"name": "tags",
"type": "Collection(Edm.String)",
"searchable": false,
"filterable": true,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
},
{
"name": "payload",
"type": "Edm.String",
"searchable": true,
"filterable": false,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
},
{
"name": "embedding",
"type": "Collection(Edm.Single)",
"searchable": true,
"filterable": false,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": 1536,
"vectorSearchProfile": "KMDefaultProfile",
"synonymMaps": []
}
],
"scoringProfiles": [],
"corsOptions": null,
"suggesters": [],
"analyzers": [],
"normalizers": [],
"tokenizers": [],
"tokenFilters": [],
"charFilters": [],
"encryptionKey": null,
"similarity": {
"@odata.type": "#Microsoft.Azure.Search.BM25Similarity",
"k1": null,
"b": null
},
"semantic": null,
"vectorSearch": {
"algorithms": [
{
"name": "KMDefaultAlgorithm",
"kind": "hnsw",
"hnswParameters": {
"metric": "cosine",
"m": 4,
"efConstruction": 400,
"efSearch": 500
},
"exhaustiveKnnParameters": null
}
],
"profiles": [
{
"name": "KMDefaultProfile",
"algorithm": "KMDefaultAlgorithm",
"vectorizer": null
}
],
"vectorizers": []
}
}
and
{
"name": "global-documents",
"defaultScoringProfile": null,
"fields": [
{
"name": "Id",
"type": "Edm.String",
"searchable": false,
"filterable": false,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": true,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
},
{
"name": "Embedding",
"type": "Collection(Edm.Single)",
"searchable": true,
"filterable": false,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": 1536,
"vectorSearchProfile": "searchProfile",
"synonymMaps": []
},
{
"name": "Text",
"type": "Edm.String",
"searchable": true,
"filterable": true,
"retrievable": true,
"sortable": true,
"facetable": true,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
},
{
"name": "Description",
"type": "Edm.String",
"searchable": false,
"filterable": true,
"retrievable": true,
"sortable": false,
"facetable": true,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
},
{
"name": "AdditionalMetadata",
"type": "Edm.String",
"searchable": false,
"filterable": true,
"retrievable": true,
"sortable": false,
"facetable": true,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
},
{
"name": "ExternalSourceName",
"type": "Edm.String",
"searchable": false,
"filterable": true,
"retrievable": true,
"sortable": false,
"facetable": true,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
},
{
"name": "IsReference",
"type": "Edm.Boolean",
"searchable": false,
"filterable": true,
"retrievable": true,
"sortable": false,
"facetable": true,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": null,
"vectorSearchProfile": null,
"synonymMaps": []
}
],
"scoringProfiles": [],
"corsOptions": null,
"suggesters": [],
"analyzers": [],
"normalizers": [],
"tokenizers": [],
"tokenFilters": [],
"charFilters": [],
"encryptionKey": null,
"similarity": {
"@odata.type": "#Microsoft.Azure.Search.BM25Similarity",
"k1": null,
"b": null
},
"semantic": null,
"vectorSearch": {
"algorithms": [
{
"name": "searchAlgorithm",
"kind": "hnsw",
"hnswParameters": {
"metric": "cosine",
"m": 4,
"efConstruction": 400,
"efSearch": 500
},
"exhaustiveKnnParameters": null
}
],
"profiles": [
{
"name": "searchProfile",
"algorithm": "searchAlgorithm",
"vectorizer": null
}
],
"vectorizers": []
}
}
To import those definitions manually, go to the Indexes settings on your AI Search Service, click the Add Index > Add Index (JSON) button and paste one at a time over the top of the default text.
I have had success creating these indexes manually and then setting the *DbType
settings to AzureAISearch
resulting in the UI showing AzureAISearch in the UI and also seeing chunked docs in the search index:
Hope that works for you too.
@jourdant Thank you very much. I will try it.
Hello, since this was asked in this thread. I wanted to share that I believe that the queue names and the -poison suffix from come from the Kernel Memory repo
Specifically, this reference file. Constants.cs from Kernel Memory
What's the default queue name for Azure Queue for Chat-Copilot? Alternatively, how can I set the azure queue name for the Chat-Copilot App?
I'm attempting to enable the memory pipeline for Chat-Copilot App and I'm in the process of setting up the environment accroding to two documents: webapi README and memory pipeline README
However, I'm unable to locate any configuration or code related to the queue name. I'm curious about how Azure Queue works in Chat-Copilot. I haven't come across any code related to sending queue messages in Chat-Copilot. Therefore, I'm unsure about how to add a queue in the storage account. Alternatively, does Chat-Copilot automatically create it in the code?
This might be a simple question, but it has been troubling me for a long time. I hope you can help me clarify it.