Skip to content

Commit

Permalink
Feature matrix improvements (microsoft#509)
Browse files Browse the repository at this point in the history
### Motivation and Context
With the official publishing of the Python Semantic Kernel, we should be
informing the public of feature parity between Python and C#. Python is
currently playing catch up.


### Description
Removed the FEATURE_PARITY.md file from the python directory and added a
FEATURE_MATRIX.md file to the top level of the repo. The main REAME.md
now links to this file. Added a stronger breakdown of features that we
are tracking for SK.
  • Loading branch information
awharrison-28 authored Apr 19, 2023
1 parent 72c7616 commit c2b3a6b
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 33 deletions.
65 changes: 65 additions & 0 deletions FEATURE_MATRIX.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Kernel Feature Matrix by Language

## AI Services
| | C# | Python | Notes |
|---|---|---|---|
| TextGeneration ||| Example: Text-Davinci-003 |
| TextEmbeddings ||| Example: Text-Embeddings-Ada-002 |
| ChatCompletion ||| Example: GPT4, Chapt-GPT |
| Image Generation ||| Example: Dall-E |

## AI Service Endpoints
| | C# | Python | Notes |
|---|---|---|---|
| OpenAI ||| |
| AzureOpenAI ||| |
| Hugging Face ||| Coming soon to Python - both native and web endpoint support |
| Custom ||| Requires the user to define the service schema in their application |

## Tokenizers
| | C# | Python | Notes |
|---|---|---|---|
| GPT2 || 🔄 | Can be manually added to Python via `pip install transformers` |
| GPT3 ||| |
| tiktoken | 🔄 || Coming soon to Python and C#. Can be manually added to Python via `pip install tiktoken` |

## Core Skills
| | C# | Python | Notes |
|---|---|---|---|
| TextMemorySkill ||| |
| PlannerSkill || 🔄 | |
| ConversationSummarySkill ||| |
| FileIOSkill ||| |
| HttpSkill ||| |
| MathSkill ||| |
| TextSkill ||| |
| TimeSkill ||| |

## Connectors and Skill Libraries
| | C# | Python | Notes |
|---|---|---|---|
| Qdrant (Memory) ||| Vector optimized |
| ChromaDb (Memory) || 🔄 | |
| Milvus (Memory) ||| Vector optimized |
| Pinecone (Memory) ||| Vector optimized |
| Weaviate (Memory) ||| Vector optimized |
| CosmosDB (Memory) ||| CosmosDB is not optimized for vector storage |
| Sqlite (Memory) ||| Sqlite is not optimized for vector storage |
| Azure Cognitive Search ||| |
| MsGraph ||| Contains connectors for OneDrive, Outlook, ToDos, and Organization Hierarchies |
| Document Skills ||| Currently only supports Word documents |
| OpenAPI ||| |
| Web Skills ||| |

# Design Choices

The overall architecture of the core kernel is consistent across Python and C#,
however, the code should follow common paradigms and style of each language.

During the initial development phase, many Python best practices have been ignored
in the interest of velocity and feature parity. The project is now going through
a refactoring exercise to increase code quality.

To make the Kernel as lightweight as possible, the core pip package should have
a minimal set of external dependencies. On the other hand, the SDK should not
reinvent mature solutions already available, unless of major concerns.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ Semantic Kernel is available to explore AI and build apps with C# and Python:
</div>
<br/>

See the [Feature Matrix](FEATURE_MATRIX.md) to see a breakdown of feature parity between C# and Python.

The quickest way to get started with the basics is to get an API key
(OpenAI or Azure OpenAI)
and to run one of the C# or Python console applications/scripts:
Expand Down
33 changes: 0 additions & 33 deletions python/FEATURE_PARITY.md

This file was deleted.

0 comments on commit c2b3a6b

Please sign in to comment.