Class LLMController
Controller for the REST API interface on LLM conversations.
Inherited Members
Namespace: Quantellia.WMServer.Asset.Controllers
Assembly: WMServer.dll
Syntax
[Route("llm")]
[Authorize]
[ApiController]
public class LLMController : ControllerBase
Constructors
LLMController(WMAppDbContext)
Constructor that injects the database context.
Declaration
public LLMController(WMAppDbContext context)
Parameters
Type | Name | Description |
---|---|---|
WMAppDbContext | context |
Methods
AssociateDocumentIndex(string, string)
Associate a VectorIndex and LLM for use in RAG
Declaration
[HttpPut("vectorindex/{documentIndexDir}/associate/{LLMDir}")]
public Task<IActionResult> AssociateDocumentIndex(string LLMDir, string documentIndexDir)
Parameters
Type | Name | Description |
---|---|---|
string | LLMDir | The LLM ID |
string | documentIndexDir | The VectorIndex ID |
Returns
Type | Description |
---|---|
Task<IActionResult> |
Delete(string)
Delete an existing instance of a LLM
Declaration
[HttpDelete("{id}")]
public Task<IActionResult> Delete(string id)
Parameters
Type | Name | Description |
---|---|---|
string | id |
Returns
Type | Description |
---|---|
Task<IActionResult> |
DeleteVectorDB(string)
Delete an existing instance of a Vector Index
Declaration
[HttpDelete("vectorindex/{id}")]
public Task<IActionResult> DeleteVectorDB(string id)
Parameters
Type | Name | Description |
---|---|---|
string | id | The Vector Index ID |
Returns
Type | Description |
---|---|
Task<IActionResult> |
DisassociateDocumentIndex(string, string)
Disassociate a VectorIndex and LLM for use in RAG
Declaration
[HttpDelete("vectorindex/{documentIndexDir}/disassociate/{LLMDir}")]
public Task<IActionResult> DisassociateDocumentIndex(string LLMDir, string documentIndexDir)
Parameters
Type | Name | Description |
---|---|---|
string | LLMDir | The LLM ID |
string | documentIndexDir | The VectorIndex ID |
Returns
Type | Description |
---|---|
Task<IActionResult> |
EndConversation(string)
Ends the conversation given by the supplied ID.
Declaration
[HttpPut("/llmConversation/{id}/close")]
public Task<IActionResult> EndConversation(string id)
Parameters
Type | Name | Description |
---|---|---|
string | id | The ID of the conversation to be ended. |
Returns
Type | Description |
---|---|
Task<IActionResult> |
Get()
Get the list of LLMs owned by the current user.
Declaration
[HttpGet]
public Task<ActionResult<IEnumerable<OpenDILLM>>> Get()
Returns
Type | Description |
---|---|
Task<ActionResult<IEnumerable<OpenDILLM>>> |
Get(string)
Get the LLM with the specified ID
Declaration
[HttpGet("{id}")]
public Task<ActionResult<OpenDILLM>> Get(string id)
Parameters
Type | Name | Description |
---|---|---|
string | id |
Returns
Type | Description |
---|---|
Task<ActionResult<OpenDILLM>> |
GetAPIKey(string)
Get the LLM with the specified ID's API Key
Declaration
[HttpGet("{id}/apikey")]
public Task<ActionResult<OpenDIDataSource>> GetAPIKey(string id)
Parameters
Type | Name | Description |
---|---|---|
string | id |
Returns
Type | Description |
---|---|
Task<ActionResult<OpenDIDataSource>> |
GetAssociatedVectorDBs(string)
Get all VectorDBs associated to the input LLM
Declaration
[HttpGet("vectorindex/associated/{id}")]
public Task<IActionResult> GetAssociatedVectorDBs(string id)
Parameters
Type | Name | Description |
---|---|---|
string | id | The LLM ID |
Returns
Type | Description |
---|---|
Task<IActionResult> |
GetDocuments(string)
Get all of the documents associated with this vector index.
Declaration
[HttpGet("vectorindex/{id}/documents")]
public Task<IActionResult> GetDocuments(string id)
Parameters
Type | Name | Description |
---|---|---|
string | id | The VectorIndex ID |
Returns
Type | Description |
---|---|
Task<IActionResult> |
GetVectorDB()
Get the list of Vector Indices owned by the current user.
Declaration
[HttpGet("vectorindex")]
public Task<ActionResult<IEnumerable<OpenDIDocumentIndex>>> GetVectorDB()
Returns
Type | Description |
---|---|
Task<ActionResult<IEnumerable<OpenDIDocumentIndex>>> |
GetVectorDB(string)
Get the Vector Index with the specified ID
Declaration
[HttpGet("vectorindex/{id}")]
public Task<ActionResult<OpenDIDocumentIndex>> GetVectorDB(string id)
Parameters
Type | Name | Description |
---|---|---|
string | id | The Vector Index ID |
Returns
Type | Description |
---|---|
Task<ActionResult<OpenDIDocumentIndex>> |
Insert(string, string)
Insert a Document into the VectorIndex for indexing.
Declaration
[HttpPut("vectorindex/{documentIndexDir}/insert/{documentDir}")]
public Task<IActionResult> Insert(string documentIndexDir, string documentDir)
Parameters
Type | Name | Description |
---|---|---|
string | documentIndexDir | The VectorIndex ID/DIr |
string | documentDir | The Document ID/Dir |
Returns
Type | Description |
---|---|
Task<IActionResult> |
InsertMany(string, ManyDocumentArgs)
Inserts a set of Documents into the VectorIndex for indexing.
Declaration
[HttpPut("vectorindex/{documentIndexDir}/insertmany")]
public Task<IActionResult> InsertMany(string documentIndexDir, ManyDocumentArgs documentArgs)
Parameters
Type | Name | Description |
---|---|---|
string | documentIndexDir | The VectorIndex ID/DIr |
ManyDocumentArgs | documentArgs | The set of Document IDs/Dirs |
Returns
Type | Description |
---|---|
Task<IActionResult> |
Post(OpenDILLM)
Create a new instance of a LLM
Declaration
[HttpPost]
public Task<ActionResult<OpenDILLM>> Post(OpenDILLM openDI_m)
Parameters
Type | Name | Description |
---|---|---|
OpenDILLM | openDI_m |
Returns
Type | Description |
---|---|
Task<ActionResult<OpenDILLM>> |
PostVectorDB(OpenDIDocumentIndex)
Create a new instance of a Vector Index
Declaration
[HttpPost("vectorindex")]
public Task<ActionResult<OpenDIDocumentIndex>> PostVectorDB(OpenDIDocumentIndex openDI_m)
Parameters
Type | Name | Description |
---|---|---|
OpenDIDocumentIndex | openDI_m |
Returns
Type | Description |
---|---|
Task<ActionResult<OpenDIDocumentIndex>> |
Put(string, OpenDILLM)
Update an existing instance of a LLM
Declaration
[HttpPut("{id}")]
public Task<IActionResult> Put(string id, OpenDILLM openDI_m)
Parameters
Type | Name | Description |
---|---|---|
string | id | |
OpenDILLM | openDI_m |
Returns
Type | Description |
---|---|
Task<IActionResult> |
PutVectorDB(string, OpenDIDocumentIndex)
Update an existing instance of a Vector Index
Declaration
[HttpPut("vectorindex/{id}")]
public Task<IActionResult> PutVectorDB(string id, OpenDIDocumentIndex openDI_m)
Parameters
Type | Name | Description |
---|---|---|
string | id | The Vector Index ID |
OpenDIDocumentIndex | openDI_m |
Returns
Type | Description |
---|---|
Task<IActionResult> |
Query(string, MessageBody)
Query an LLM for contextually similar fragments stored in accessible vector indices.
Declaration
[HttpPut("vectorindex/query/{LLMID}")]
public Task<ActionResult<IEnumerable<string>>> Query(string LLMID, LLMController.MessageBody message)
Parameters
Type | Name | Description |
---|---|---|
string | LLMID | The LLM ID |
LLMController.MessageBody | message | The message to insert |
Returns
Type | Description |
---|---|
Task<ActionResult<IEnumerable<string>>> |
Remove(string, string)
Remove a document from the VectorIndex
Declaration
[HttpDelete("vectorindex/{documentIndexDir}/remove/{documentDir}")]
public Task<IActionResult> Remove(string documentIndexDir, string documentDir)
Parameters
Type | Name | Description |
---|---|---|
string | documentIndexDir | The VectorIndex ID/DIr |
string | documentDir | The Document ID/Dir |
Returns
Type | Description |
---|---|
Task<IActionResult> |
RemoveMany(string, ManyDocumentArgs)
Removes a set of documents from the VectorIndex
Declaration
[HttpDelete("vectorindex/{documentIndexDir}/removemany")]
public Task<IActionResult> RemoveMany(string documentIndexDir, ManyDocumentArgs documentArgs)
Parameters
Type | Name | Description |
---|---|---|
string | documentIndexDir | The VectorIndex ID/DIr |
ManyDocumentArgs | documentArgs | The set of Document IDs/Dirs |
Returns
Type | Description |
---|---|
Task<IActionResult> |
StreamConversation(ConversationArgs)
Utilizes a RAG architectured LLM to provide insights given the sent message, and message history.
Declaration
[HttpPost("/llmConversation")]
public Task StreamConversation(ConversationArgs args)
Parameters
Type | Name | Description |
---|---|---|
ConversationArgs | args | A ConversationArgs object specifying the conversation ID and message. |
Returns
Type | Description |
---|---|
Task | A stream of response messages from the LLM provider |