Power Skills are a collection of useful functions to be deployed as custom skills for Azure Cognitive Search. The skills can be used as templates or starting points for your own custom skills, or they can be deployed and used as they are if they happen to meet your requirements. We also invite you to contribute your own work by submitting a pull request.
Here are a few suggestions of simple contributions to get you started:
- Improve documentation: sample code, better documentation are great ways to improve your understanding of existing code and to help other do the same.
- Configuration: some skills can be configured through application settings and environment variables. Some others still have hard-coded configuration in the code, that could be moved to be easier to configure.
- For skills that rely on an external Azure resource (such as Bing Entity Search), improve the deployment file so it gives the user the option to create and configure that service automatically.
This project provides the following custom skills:
- HelloWorld: a minimal skill that can be used as a starting point or template for your own skills.
- GeoPointFromName: retrieves coordinates from place names and addresses.
- BingEntitySearch: finds rich and structured information about public figures, locations, or organizations.
- AcronymLinker: provides definitions for known acronyms.
- ImageStore: stores and fetches base64-encoded images to and from blob storage.
- HocrGenerator: transforms the result of OCR into the hOCR format.
- AnalyzeForm: recognizes form fields in a document.
- CustomVision: classifies documents using Custom Vision models.
- CustomEntityLookup: finds custom entity names in text.
- Tokenizer: extracts non-stop words from a text.
- Distinct: de-duplicates a list of terms.
- AbbyyOCR: OCR to extract text from images using ABBYY Cloud OCR.
- P&ID Parser: Extracts equipment tags and text blocks from piping and instrumentation diagrams
- GetFileExtension: returns the filename and extension as separate values allowing you to filter on document type.
- DecryptBlobFile: downloads, decrypts and returns a file that was previously encrypted and stored in Azure Blob Storage.
In order to use the functions in this project, you'll need an active Azure subscription. Most of the functions can be used on their own for quick evaluation and experimentation, but they are meant to be used as part of an Azure Cognitive Search pipeline. Each function may also add its own specific requirements, such as API keys for services they leverage.
Visual Studio 2019 is recommended, but not required. You need a recent version of the C# compiler. Postman is highly recommended as a way to experiment and test skills.
If using Visual Studio with the Azure workload installed, no installation is required, and the functions can just be run locally using F5.
Deployment of a function to Azure can be done through Visual Studio, the Deploy to Azure button, or continuous deployment.
Some functions may require setting environment variables or configuration entries. Please refer to the readme file in the function's directory.
- Clone the repository
- Open the PowerSkills solution in Visual Studio
- Set the project for the function to test as the startup project
- Hit F5
- Experiment with calling the function using Postman
You can also create your own skills using our Hello World template skill as a starting point.