89 lines
2.1 KiB
Markdown
89 lines
2.1 KiB
Markdown
# Text-Based LLM Interaction System Architecture
|
|
|
|
## Overview
|
|
This document outlines the architecture for a text-based system that allows users to interact with an LLM running on LM Studio.
|
|
|
|
## Components
|
|
|
|
### 1. User Interface Layer
|
|
- **Text Input Handler**: Captures user input from terminal
|
|
- **Text Output Display**: Shows LLM responses to user
|
|
- **Session Manager**: Manages conversation history
|
|
|
|
### 2. Communication Layer
|
|
- **LLM Client**: Handles HTTP communication with LM Studio
|
|
- **API Interface**: Formats requests/responses according to LM Studio's API
|
|
|
|
### 3. Core Logic Layer
|
|
- **Message Processor**: Processes user input and LLM responses
|
|
- **Conversation History**: Maintains context between messages
|
|
|
|
## Data Flow
|
|
|
|
```mermaid
|
|
graph TD
|
|
A[User] --> B[Text Input Handler]
|
|
B --> C[Message Processor]
|
|
C --> D[LLM Client]
|
|
D --> E[LM Studio Server]
|
|
E --> D
|
|
D --> C
|
|
C --> F[Text Output Display]
|
|
F --> A
|
|
```
|
|
|
|
## Technical Details
|
|
|
|
### LM Studio API
|
|
- Endpoint: http://10.0.0.200:1234/v1/chat/completions
|
|
- Method: POST
|
|
- Content-Type: application/json
|
|
|
|
### Request Format
|
|
```json
|
|
{
|
|
"model": "model_name",
|
|
"messages": [
|
|
{"role": "user", "content": "user message"}
|
|
],
|
|
"temperature": 0.7,
|
|
"max_tokens": -1
|
|
}
|
|
```
|
|
|
|
### Response Format
|
|
```json
|
|
{
|
|
"id": "chatcmpl-123",
|
|
"object": "chat.completion",
|
|
"created": 1677652288,
|
|
"model": "model_name",
|
|
"choices": [
|
|
{
|
|
"index": 0,
|
|
"message": {
|
|
"role": "assistant",
|
|
"content": "response message"
|
|
},
|
|
"finish_reason": "stop"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Project Structure
|
|
```
|
|
text_adventure/
|
|
├── main.py # Entry point
|
|
├── config.py # Configuration settings
|
|
├── llm_client.py # LLM communication
|
|
├── interface.py # Text input/output
|
|
└── conversation.py # Conversation history management
|
|
```
|
|
|
|
## Implementation Plan
|
|
1. Create basic text input/output interface
|
|
2. Implement LLM client for LM Studio communication
|
|
3. Add conversation history management
|
|
4. Integrate components
|
|
5. Test functionality |