# llm_repeator_redis **Repository Path**: sky_flash/llm_repeator_redis ## Basic Information - **Project Name**: llm_repeator_redis - **Description**: 以 redis 整合多个 llm api 的服务器工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-27 - **Last Updated**: 2025-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # llm_repeator_redis ## 项目简述 ## 使用方法 ### 01. 环境准备 确保你已经安装了所需的依赖包。你可以使用 `pip` 安装这些依赖包: ```bash pip install -r requirements.txt ``` ### 02. 配置文件 `llm_worker` 依赖于配置文件来读取 Redis 和 LLM 的配置信息。确保以下配置文件存在并正确配置: - **config.ini**:包含 Redis 和 LLM 的配置信息。 - **llm_resources.json**:包含 LLM 模型的资源信息。 ### 03. 配置文件 确保设置了 Redis 密码的环境变量。例如: ```bash export REDIS_PASSWORD=your_redis_password export REDIS_ARCH_PASSWORD=your_redis_arch_password ``` ### 04.启动 llm_workder `llm_worker` 是一个用于处理 LLM(Large Language Model)请求的 Redis 中继程序。它从 Redis 队列中获取请求,调用相应的 LLM 模型生成响应,并将响应保存回 Redis。以下是启动 `llm_worker` 的步骤: ```bash python src/llm_services/llm_worker.py ``` ### 05.启动 arch_worker `arch_worker` 是一个用于从 Redis 中读取归档数据并将其保存到本地文件系统的程序。它定期从 Redis 中读取最新的归档记录,并将这些记录保存到指定的目录中。以下是启动 `arch_worker` 的步骤: 在终端中导航到项目目录并运行 `arch_worker.py`: ```bash python src/arch_services/arch_worker.py ``` ### 06. 使用 LLMRepeatorRedis 交互 `LLMRepeatorRedis` 类提供了一个接口,用于将请求消息推送到 Redis 队列中,并获取 LLM(Large Language Model)的响应。以下是使用 `LLMRepeatorRedis` 类进行交互的详细步骤和示例代码。 #### 1. 初始化 LLMRepeatorRedis 首先,你需要初始化 `LLMRepeatorRedis` 类的实例。你可以通过指定配置文件路径和 LLM 资源文件路径来初始化。 ```python from llm_services.llm_repeator_redis import LLMRepeatorRedis # 初始化 LLMRepeatorRedis 实例 llm_repeater = LLMRepeatorRedis(llm_json_path='../config/llm_resources.json', config_path='../config/config.ini') ``` #### 2. 发送请求并获取响应 `LLMRepeatorRedis` 类提供了多种方法来发送请求并获取响应。以下是每种方法的详细说明和示例代码。 ##### 2.1 `request` 方法 `request` 方法是最基本的方法,用于将请求消息推送到 Redis 队列中,并获取响应。 **参数**: - `messages`: 请求消息列表,类型为 `List[BaseMessage]`。 - `model`: 使用的模型名称,类型为 `str`。 - `block_time`: 阻塞时间,单位为秒,默认为 5 分钟。 - `internal`: 请求答案的时间间隔,单位为秒,默认为 1 秒。 **示例代码**: ```python from langchain_core.messages import SystemMessage, HumanMessage # 创建消息列表 messages = [ SystemMessage("You are a helpful assistant."), HumanMessage("What is the capital of France?") ] # 发送请求并获取响应 response = llm_repeater.request(messages=messages, model='home_deepseek-r1:8b-llama-distill-fp16') print(response) ``` ##### 2.2 `request_messages` 方法 `request_messages` 方法与 `request` 方法类似,但它允许你在获取响应后根据配置文件中的 `response_type` 进行进一步处理。 **参数**: - `messages`: 请求消息列表,类型为 `List[BaseMessage]`。 - `model`: 使用的模型名称,类型为 `str`。 - `block_time`: 阻塞时间,单位为秒,默认为 5 分钟。 - `internal`: 请求答案的时间间隔,单位为秒,默认为 1 秒。 **示例代码**: ```python # 创建消息列表 messages = [ SystemMessage("You are a helpful assistant."), HumanMessage("What is the capital of France?") ] # 发送请求并获取响应 response = llm_repeater.request_messages(messages=messages, model='home_deepseek-r1:8b-llama-distill-fp16') print(response) ``` ##### 2.3 `request_str_human` 方法 `request_str_human` 方法用于快速发送包含系统提示和人类消息的请求。 **参数**: - `system`: 系统提示词,类型为 `str`。 - `human`: 人类消息,类型为 `str`。 - `model`: 使用的模型名称,类型为 `str`。 - `block_time`: 阻塞时间,单位为秒,默认为 5 分钟。 - `internal`: 请求答案的时间间隔,单位为秒,默认为 1 秒。 **示例代码**: ```python # 发送请求并获取响应 response = llm_repeater.request_str_human( system="You are a helpful assistant.", human="What is the capital of France?", model='home_deepseek-r1:8b-llama-distill-fp16' ) print(response) ``` ##### 2.4 `request_file_human` 方法 `request_file_human` 方法用于从文件中读取系统提示词,并发送包含系统提示和人类消息的请求。 **参数**: - `system_file_path`: 系统提示词文件路径,类型为 `str`。 - `human`: 人类消息,类型为 `str`。 - `model`: 使用的模型名称,类型为 `str`。 - `block_time`: 阻塞时间,单位为秒,默认为 5 分钟。 - `internal`: 请求答案的时间间隔,单位为秒,默认为 1 秒。 **示例代码**: ```python # 发送请求并获取响应 response = llm_repeater.request_file_human( system_file_path='../prompts/system_prompt.txt', human="What is the capital of France?", model='home_deepseek-r1:8b-llama-distill-fp16' ) print(response) ``` 通过以上步骤和示例代码,你可以轻松地使用 `LLMRepeatorRedis` 类与 LLM 进行交互,并处理响应。 ## 配置文件说明 ### config.ini ### llm_resources.json ## 开发备忘 ### 更新 requirements.txt 文件 前提是安装了 pipreqs: ```bash pip install pipreqs ``` 执行命令: ```bash pipreqs . --force --encoding=utf-8 ``` ### 打包成 whl 文件 # 成生分包文件 ```bash python -m build ``` 文件将在 `dist` 目录下生成。