Skip to content

Commit

Permalink
Python: Update Python README and FEATURE_MATRIX (microsoft#2004)
Browse files Browse the repository at this point in the history
Update the README for Python to include latest notebooks and add a link
to Learn Documentation site for the feature matrix

---------

Co-authored-by: Alex Chao <achao@achao>
  • Loading branch information
alexchaomander and Alex Chao authored Jul 17, 2023
1 parent d6f7ee3 commit d454735
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 91 deletions.
92 changes: 2 additions & 90 deletions FEATURE_MATRIX.md
Original file line number Diff line number Diff line change
@@ -1,93 +1,5 @@
# Semantic Kernel Feature Matrix by Language

**Legend**
This document can be found on the Semantic Kernel Documentation site on [Supported Languages.](https://learn.microsoft.com/en-us/semantic-kernel/get-started/supported-languages)

✅ - Feature implemented
🔄 - Feature partially implemented (see associated Note column)
❌ - Feature not implemented

## AI Services

| | C# | Python | Java | Notes |
|-----------------------------------|:----:|:------:|:----:|-------|
| Text Generation |||| Example: text-davinci-003 |
| Text Embeddings |||| Example: text-embeddings-ada-002 |
| Chat Completion |||| Example: GPT-4, GPT-3.5-turbo |
| Image Generation |||| Example: Dall-E 2 |

## AI Service Endpoints

| | C# | Python | Java | Notes |
|-----------------------------------|:---:|:------:|:----:|-------|
| OpenAI |||| |
| Azure OpenAI |||| |
| Hugging Face Inference API | 🔄 ||| Coming soon to Python, not all scenarios are covered for .NET |
| Hugging Face Local |||| |
| Custom || 🔄 || Requires to define the service schema in the application |

## Tokenizers

| | C# | Python | Java | Notes |
|-----------------------------------|:---:|:------:|:----:|-------|
| GPT2 |||| |
| GPT3 |||| |
| tiktoken |||| Coming soon. Can be added manually to Python via `pip install tiktoken` |

## Core Skills

| | C# | Python | Java | Notes |
|-----------------------------------|:---:|:------:|:----:|-------|
| TextMemory Skill ||| 🔄 | |
| ConversationSummary Skill |||| |
| FileIO Skill |||| |
| Http Skill |||| |
| Math Skill |||| |
| Text Skill ||| 🔄 | |
| Time Skill |||| |
| Wait Skill |||| |

## Planning

| | C# | Python | Java | Notes |
|-----------------------------------|:---:|:------:|:----:|-------|
| Plan || 🔄 || Plan object model to be completed |
| BasicPlanner |||| |
| ActionPlanner ||| 🔄 | |
| SequentialPlanner ||| 🔄 | |

## Memory Connectors, Vector storage

| | C# | Python | Java | Notes |
|---------------|:---:|:------:|:----:|-------|
| Azure Search || 🔄 || Azure Cognitive Search coming soon |
| Weaviate |||| Currently supported on Python 3.9+, 3.8 coming soon |
| Chroma |||| |
| Qdrant |||| |
| Pinecone |||| |
| Milvus |||| Coming soon |
| Sqlite |||| Vector optimization requires [sqlite-vss](https://github.com/asg017/sqlite-vss) |
| Postgres |||| Vector optimization requires [pgvector](https://github.com/pgvector/pgvector) |
| CosmosDB |||| CosmosDB is not optimized for vector storage |
| Redis |||| Vector optimization requires [RediSearch](https://redis.io/docs/stack/search) |

## Connectors and Skill Libraries

| | C# | Python | Java | Notes |
|---------------------------------------|:---:|:------:|:----:|-------|
| MsGraph |||| Contains connectors for OneDrive, Outlook, ToDos, and Organization Hierarchies |
| Document and Data Loading Skills |||| Pdf, csv, docx, pptx. Currently only supports Word documents |
| OpenAPI |||| |
| Web Search Skills (i.e. Bing, Google) |||| |
| Text Chunkers | 🔄 | 🔄 || |

# Design Choices

The overall architecture of the core kernel is consistent across all languages,
however, the code follows 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 SDK as lightweight as possible, the core packages have
a minimal set of external dependencies.
To make an update on the page, file a PR on the [docs repo.](https://github.com/MicrosoftDocs/semantic-kernel-docs/blob/main/semantic-kernel/get-started/supported-languages.md)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Semantic Kernel is available to explore AI and build apps with C# and Python:
</tbody>
</table>

See the [Feature Matrix](FEATURE_MATRIX.md) to see a breakdown of feature parity between C# and Python.
See the [Feature Matrix](https://learn.microsoft.com/en-us/semantic-kernel/get-started/supported-languages) to see a breakdown of feature parity between our currently supported languages.

The quickest way to get started with the basics is to get an API key
(OpenAI or Azure OpenAI)
Expand Down
5 changes: 5 additions & 0 deletions python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,11 @@ Python notebooks:
* [Using Context Variables to Build a Chat Experience](../samples/notebooks/python/04-context-variables-chat.ipynb)
* [Introduction to planners](../samples/notebooks/python/05-using-the-planner.ipynb)
* [Building Memory with Embeddings](../samples/notebooks/python/06-memory-and-embeddings.ipynb)
* [Using Hugging Face for Skills](../samples/notebooks/python/07-hugging-face-for-skills.ipynb)
* [Combining native functions and semantic functions](../samples/notebooks/python/08-native-function-inline.ipynb)
* [Groundedness Checking with Semantic Kernel](../samples/notebooks/python/09-groundedness-checking.ipynb)
* [Returning multiple results per prompt](../samples/notebooks/python/10-multiple-results-per-prompt.ipynb)
* [Streaming completions with Semantic Kernel](../samples/notebooks/python/11-streaming-completions.ipynb)

# SK Frequently Asked Questions

Expand Down

0 comments on commit d454735

Please sign in to comment.