Kernel Memory 5.1 코드 분석1
Groq에서 라마 3로 문서화 했습니다.
MemoryWebClient
This is a C# class called
MemoryWebClient
that acts as a web service client for a system called Kernel Memory. The class provides a set of methods for interacting with the Kernel Memory web service, such as uploading documents, searching for documents, and deleting documents.Constructor
The
MemoryWebClient
class has several constructors that allow you to create a new instance of the client. The constructors take in parameters such as the endpoint URL, API key, and API key header.Properties
The class has several properties, such as
_client
, which is an instance of HttpClient
used for making HTTP requests.Methods
The class has several methods that interact with the Kernel Memory web service, including:
*
ImportDocumentAsync
: Uploads a document to the web service.*
ListIndexesAsync
: Retrieves a list of indexes from the web service.*
DeleteIndexAsync
: Deletes an index from the web service.*
DeleteDocumentAsync
: Deletes a document from the web service.*
IsDocumentReadyAsync
: Checks if a document is ready for processing.*
GetDocumentStatusAsync
: Retrieves the status of a document.*
ExportFileAsync
: Downloads a file from the web service.*
SearchAsync
: Searches for documents in the web service.*
AskAsync
: Asks a question to the web service.[How it Works]
Here’s a high-level overview of how the
MemoryWebClient
class works:1. When you create a new instance of the
MemoryWebClient
class, you provide the endpoint URL, API key, and API key header.2. The class uses the
HttpClient
instance to make HTTP requests to the Kernel Memory web service.3. The methods in the class, such as
ImportDocumentAsync
, use the HttpClient
instance to send HTTP requests to the web service.4. The web service processes the requests and returns responses, which are then handled by the
MemoryWebClient
class.5. The
MemoryWebClient
class provides a simple and intuitive API for interacting with the Kernel Memory web service.[Analogies]
Think of the
MemoryWebClient
class as a messenger between your application and the Kernel Memory web service. You give the messenger a message (e.g., “upload this document”), and the messenger takes care of sending the message to the web service and getting a response back.Similarly, the
MemoryWebClient
class can be thought of as a remote control for the Kernel Memory web service. You use the remote control to send commands to the web service (e.g., “delete this document”), and the web service responds accordingly.
커널 메모리는 RAG (Retrieval-Augmented Generation)를 위한 솔루션으로, 마이크로 소프트가 주도하는 오픈소스 입니다.
RAG는 LLM 연동 AI 서비스들을 보완하기 위해 등장한 것이지만, 기업이나 공공의 요구를 어느 정도라도 만족시켜 주려면 내부 요소보다는 독립된 하나의 시스템 또는 솔루션으로 다뤄져야 합니다. 마이크로 소프트가 잘 짚었습니다.
커널 메모리는 웹 서비스로 독립된 서버에서 돌아가면서, LLM 연동 AI 서비스를 제공하려는 AI 애플리케이션 에서 사용될 수 있습니다.
* LLM 연동 AI 서비스는 대부분 LLM 공급자가 API로 제공합니다. AI 애플리케이션은 이런 API를 통해 LLM과 연동 된다고 할 수 있습니다.
일반적인 RAG 방법은 1.문서에 담긴 데이터를 읽어서 2.자연어 검색이 가능하도록 임베딩하고 3. 사용자가 자연어로 질의하면 결과를 자연어로 리턴합니다. 리턴된 결과는프롬프트의 일부(보통 컨텍스트라 하는 영역)에 포함되어 LLM에게 전달됩니다.
RAG 솔루션 이라면 이를 지원한다는 거고, 커널 메모리는 이런 기능들을 구현하고 있다는 것입니다.
커널 메모리가 웹 서비스로 독립적으로 실행되면서, AI 애플리케이션과 쉽게 연동 되게 하려면 이를 지원하는 기능이 있으면 좋습니다. MemoryWebClient가 이 역할을 하는 것입니다.