MicrosoftDocs / semantic-kernel-docs

Semantic Kernel (SK) is a lightweight SDK enabling integration of AI Large Language Models (LLMs) with conventional programming languages.
MIT License
181 stars 106 forks source link

Installation fails when installing semantic-kernel - a conda package must be provided for EVERY release of Semantic Kernel #52

Open richlysakowski opened 11 months ago

richlysakowski commented 11 months ago

Requirement: a conda "core" package shall be provided for EVERY release of the Semantic Kernel Python SDK.

WHY: conda packages make it easier to create robust production solutions with lower-level technical "build" skills. It takes less effort and knowledge for typical end users. Data scientists, data analysts, AI application engineers, and scientists usually have "good enough" Python application skills, but low or no technical skills and experience using Visual Studio, "Cmake", Ant, Maven, and compiled languages.

In the Semantic Kernel documentation overview, it states:

"To make the [Semantic] 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."

There is no mention of distributing Semantic Kernel as conda-formatted package.

WHAT I TRIED: I just tried installing Semantic Kernel with conda and it failed:

conda install semantic-kernel -c conda-forge

RESULTS:

conda install semantic-kernel -c conda-forge Collecting package metadata (current_repodata.json): done Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve. Collecting package metadata (repodata.json): done Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.

PackagesNotFoundError: The following packages are not available from current channels:

  • semantic-kernel

Current channels:

In the rush to "get to market" many Python developers do not remember that most users are data scientists, data analysts, AI application engineers, and non-professional software engineers, i.e., "script writers". We want to make it as easy as possible for the majority of users to create robust and reliable PRODUCTION implementations.

conda packages make it easier to build production quality environments by removing the complexity of build tools for the end user.

The conda environment manager verifies and assures that full environment-wide integrity will be preserved before conda commits any transactions. If not, then conda aborts without changing anything.

Pip is a greedy and selfish package manager that does its business wherever the user happens to be -- pip squats, plops, downgrades or rips out packages -- then zips up its pants and leaves. Pip is only a package manager. Pip drops its package to satisfy the current urge(nt) need, without ensuring environment-wide mutual compatibility. Pip does not verify environment integrity, nor does it inform conda where and how it "pipped". The conda index is not updated after pip does its business.

Please respect typical users needs for simplicity to build reliable robust solutions.

Thank you.

Off Soap-Box