diff --git a/frameworks/langchain/1.2.14/Dockerfile b/frameworks/langchain/1.2.14/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..f7238f4fb102bcd709f4faa0ef75f703bd2cc025 --- /dev/null +++ b/frameworks/langchain/1.2.14/Dockerfile @@ -0,0 +1,23 @@ +# 基础镜像:OpenCloudOS 9 极简版,适用于纯 Python / CPU 框架 +FROM opencloudos/opencloudos9-minimal:latest + +# 镜像元信息 +LABEL maintainer="OpenCloudOS Community" +LABEL org.opencontainers.image.source="https://gitee.com/OpenCloudOS/ai-agent-container" +LABEL org.opencontainers.image.description="LangChain 1.2.14 on OpenCloudOS 9" + +# 安装 Python 3.11 及 pip,安装完成后清理缓存以减小镜像体积 +RUN dnf install -y \ + python3.11 \ + python3.11-pip \ + && dnf clean all \ + && rm -rf /var/cache/yum/* + +# 安装 LangChain +RUN pip3.11 install --no-cache-dir langchain==1.2.14 + +# 记录镜像构建时间,便于追溯 +RUN echo $(date +"%Y-%m-%dT%H:%M:%S%z") > /opencloudos_build_date.txt + +# 默认进入 Python 3.11 交互环境 +CMD ["python3.11"] diff --git a/frameworks/langchain/1.2.14/README.md b/frameworks/langchain/1.2.14/README.md new file mode 100644 index 0000000000000000000000000000000000000000..86e5549b178682f3a6353b511a82d23ec017b6a6 --- /dev/null +++ b/frameworks/langchain/1.2.14/README.md @@ -0,0 +1,49 @@ +# LangChain on OpenCloudOS 9 + +## 基本信息 + +- **框架版本**: v1.2.14 +- **基础镜像**: opencloudos/opencloudos9-minimal:latest +- **Python 版本**: 3.11 +- **CUDA 版本**: N/A (CPU only) + +## 构建 + +```bash +docker build -t oc9-langchain:1.2.14 . +``` + +## 使用示例 + +### 1. 验证安装 + +```bash +docker run --rm oc9-langchain:1.2.14 python3.11 -c "import langchain; print(langchain.__version__)" +``` + +### 2. 运行 LangChain 应用 + +```bash +docker run --rm -v $(pwd):/workspace oc9-langchain:1.2.14 python3.11 your_app.py +``` + +### 3. 交互式运行 + +```bash +docker run -it --rm -v $(pwd):/workspace oc9-langchain:1.2.14 bash +``` + +## 核心功能 + +LangChain 是一个用于构建 LLM 应用的 Python 框架,主要特性包括: + +- **Model I/O**: 与各种 LLM 模型交互的统一接口(Chat Models、LLMs、Embeddings) +- **Retrieval**: 从外部数据源检索相关信息(Document Loaders、Text Splitters、Vector Stores) +- **Agents**: 让 LLM 自主决定使用哪些工具来完成任务 +- **Chains**: 将多个组件组合成端到端的流水线 +- **Tools & Toolkits**: 预构建的工具集合,可被 Agent 调用 +- **Memory**: 在多轮对话中维护状态 + +## 已知问题 + +- 无 diff --git a/frameworks/langchain/1.2.14/build.conf b/frameworks/langchain/1.2.14/build.conf new file mode 100644 index 0000000000000000000000000000000000000000..164ef36490fe2fdd3d57de1f5595b44c85f56d73 --- /dev/null +++ b/frameworks/langchain/1.2.14/build.conf @@ -0,0 +1,4 @@ +# LangChain 1.2.14 on OpenCloudOS 9 +IMAGE_NAME=oc9-langchain +IMAGE_TAG=1.2.14 +GPU_TEST=false diff --git a/frameworks/langchain/1.2.14/screenshots/.gitkeep b/frameworks/langchain/1.2.14/screenshots/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/frameworks/langchain/1.2.14/screenshots/test_pass.png b/frameworks/langchain/1.2.14/screenshots/test_pass.png new file mode 100644 index 0000000000000000000000000000000000000000..3c373e959642af9176c47ef2c2c6e48d2db3df3f Binary files /dev/null and b/frameworks/langchain/1.2.14/screenshots/test_pass.png differ diff --git a/frameworks/langchain/1.2.14/test.sh b/frameworks/langchain/1.2.14/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..5e89d86e3a72fd5135ec22582dbd8a70def97380 --- /dev/null +++ b/frameworks/langchain/1.2.14/test.sh @@ -0,0 +1,68 @@ +#!/bin/bash +set -e + +IMAGE="${1:?ERROR: 缺少镜像参数。用法: bash test.sh }" + +if sudo -n true 2>/dev/null; then + DOCKER="sudo docker" +else + DOCKER="docker" +fi + +echo "=== LangChain 1.2.14 基础功能测试 ===" + +# 1. 验证 langchain 可正常导入并检查版本 +echo -n "检查 import langchain... " +$DOCKER run --rm "$IMAGE" python3.11 -c " +import importlib.metadata +print(importlib.metadata.version('langchain')) +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +# 2. 验证 PromptTemplate 核心功能 +echo -n "检查 PromptTemplate 构建... " +$DOCKER run --rm "$IMAGE" python3.11 -c " +from langchain_core.prompts import ChatPromptTemplate + +prompt = ChatPromptTemplate.from_template('Tell me a joke about {topic}') +assert prompt is not None, 'PromptTemplate 创建失败' +assert 'topic' in prompt.input_variables, f'输入变量不正确: {prompt.input_variables}' + +result = prompt.invoke({'topic': 'programming'}) +assert result is not None, 'PromptTemplate invoke 失败' +print('PromptTemplate 正常') +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +# 3. 验证 OutputParser + Runnable 管道组合 +echo -n "检查 Runnable 管道组合... " +$DOCKER run --rm "$IMAGE" python3.11 -c " +from langchain_core.prompts import ChatPromptTemplate +from langchain_core.output_parsers import StrOutputParser + +prompt = ChatPromptTemplate.from_template('Say hello to {name}') +parser = StrOutputParser() + +from langchain_core.runnables import RunnablePassthrough +chain = {'name': RunnablePassthrough()} | prompt | parser + +assert chain is not None, '管道创建失败' +print('Runnable 管道正常') +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +# 4. 验证 Messages 模块 +echo -n "检查 Messages 模块... " +$DOCKER run --rm "$IMAGE" python3.11 -c " +from langchain_core.messages import HumanMessage, AIMessage, SystemMessage + +msg = HumanMessage(content='Hello') +assert msg.content == 'Hello', f'HumanMessage content 错误: {msg.content}' + +sys_msg = SystemMessage(content='You are a helpful assistant') +assert sys_msg.type == 'system', f'SystemMessage type 错误: {sys_msg.type}' + +ai_msg = AIMessage(content='Hi there!') +assert ai_msg.type == 'ai', f'AIMessage type 错误: {ai_msg.type}' + +print('Messages 模块正常') +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +echo "=== 所有测试通过 ===" diff --git a/frameworks/langchain/1.2.15/Dockerfile b/frameworks/langchain/1.2.15/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..f7af7bb9c80eba5d914885c19e8a8b1c56947ce4 --- /dev/null +++ b/frameworks/langchain/1.2.15/Dockerfile @@ -0,0 +1,23 @@ +# 基础镜像:OpenCloudOS 9 极简版,适用于纯 Python / CPU 框架 +FROM opencloudos/opencloudos9-minimal:latest + +# 镜像元信息 +LABEL maintainer="OpenCloudOS Community" +LABEL org.opencontainers.image.source="https://gitee.com/OpenCloudOS/ai-agent-container" +LABEL org.opencontainers.image.description="LangChain 1.2.15 on OpenCloudOS 9" + +# 安装 Python 3.11 及 pip,安装完成后清理缓存以减小镜像体积 +RUN dnf install -y \ + python3.11 \ + python3.11-pip \ + && dnf clean all \ + && rm -rf /var/cache/yum/* + +# 安装 LangChain +RUN pip3.11 install --no-cache-dir langchain==1.2.15 + +# 记录镜像构建时间,便于追溯 +RUN echo $(date +"%Y-%m-%dT%H:%M:%S%z") > /opencloudos_build_date.txt + +# 默认进入 Python 3.11 交互环境 +CMD ["python3.11"] diff --git a/frameworks/langchain/1.2.15/README.md b/frameworks/langchain/1.2.15/README.md new file mode 100644 index 0000000000000000000000000000000000000000..71ff828b348cf025c34d74277eac7dc7d15c33c1 --- /dev/null +++ b/frameworks/langchain/1.2.15/README.md @@ -0,0 +1,49 @@ +# LangChain on OpenCloudOS 9 + +## 基本信息 + +- **框架版本**: v1.2.15 +- **基础镜像**: opencloudos/opencloudos9-minimal:latest +- **Python 版本**: 3.11 +- **CUDA 版本**: N/A (CPU only) + +## 构建 + +```bash +docker build -t oc9-langchain:1.2.15 . +``` + +## 使用示例 + +### 1. 验证安装 + +```bash +docker run --rm oc9-langchain:1.2.15 python3.11 -c "import langchain; print(langchain.__version__)" +``` + +### 2. 运行 LangChain 应用 + +```bash +docker run --rm -v $(pwd):/workspace oc9-langchain:1.2.15 python3.11 your_app.py +``` + +### 3. 交互式运行 + +```bash +docker run -it --rm -v $(pwd):/workspace oc9-langchain:1.2.15 bash +``` + +## 核心功能 + +LangChain 是一个用于构建 LLM 应用的 Python 框架,主要特性包括: + +- **Model I/O**: 与各种 LLM 模型交互的统一接口(Chat Models、LLMs、Embeddings) +- **Retrieval**: 从外部数据源检索相关信息(Document Loaders、Text Splitters、Vector Stores) +- **Agents**: 让 LLM 自主决定使用哪些工具来完成任务 +- **Chains**: 将多个组件组合成端到端的流水线 +- **Tools & Toolkits**: 预构建的工具集合,可被 Agent 调用 +- **Memory**: 在多轮对话中维护状态 + +## 已知问题 + +- 无 diff --git a/frameworks/langchain/1.2.15/build.conf b/frameworks/langchain/1.2.15/build.conf new file mode 100644 index 0000000000000000000000000000000000000000..3f6ba3ba02d59ddafaf7093c92ee382d0836482f --- /dev/null +++ b/frameworks/langchain/1.2.15/build.conf @@ -0,0 +1,4 @@ +# LangChain 1.2.15 on OpenCloudOS 9 +IMAGE_NAME=oc9-langchain +IMAGE_TAG=1.2.15 +GPU_TEST=false diff --git a/frameworks/langchain/1.2.15/screenshots/.gitkeep b/frameworks/langchain/1.2.15/screenshots/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/frameworks/langchain/1.2.15/screenshots/test_pass.png b/frameworks/langchain/1.2.15/screenshots/test_pass.png new file mode 100644 index 0000000000000000000000000000000000000000..9bfc9fb79ed962f7927c34dae09183c981f0f3e7 Binary files /dev/null and b/frameworks/langchain/1.2.15/screenshots/test_pass.png differ diff --git a/frameworks/langchain/1.2.15/test.sh b/frameworks/langchain/1.2.15/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..2e9bcfcaf916dd8b9afcf6129a99ca13d24df6d3 --- /dev/null +++ b/frameworks/langchain/1.2.15/test.sh @@ -0,0 +1,68 @@ +#!/bin/bash +set -e + +IMAGE="${1:?ERROR: 缺少镜像参数。用法: bash test.sh }" + +if sudo -n true 2>/dev/null; then + DOCKER="sudo docker" +else + DOCKER="docker" +fi + +echo "=== LangChain 1.2.15 基础功能测试 ===" + +# 1. 验证 langchain 可正常导入并检查版本 +echo -n "检查 import langchain... " +$DOCKER run --rm "$IMAGE" python3.11 -c " +import importlib.metadata +print(importlib.metadata.version('langchain')) +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +# 2. 验证 PromptTemplate 核心功能 +echo -n "检查 PromptTemplate 构建... " +$DOCKER run --rm "$IMAGE" python3.11 -c " +from langchain_core.prompts import ChatPromptTemplate + +prompt = ChatPromptTemplate.from_template('Tell me a joke about {topic}') +assert prompt is not None, 'PromptTemplate 创建失败' +assert 'topic' in prompt.input_variables, f'输入变量不正确: {prompt.input_variables}' + +result = prompt.invoke({'topic': 'programming'}) +assert result is not None, 'PromptTemplate invoke 失败' +print('PromptTemplate 正常') +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +# 3. 验证 OutputParser + Runnable 管道组合 +echo -n "检查 Runnable 管道组合... " +$DOCKER run --rm "$IMAGE" python3.11 -c " +from langchain_core.prompts import ChatPromptTemplate +from langchain_core.output_parsers import StrOutputParser + +prompt = ChatPromptTemplate.from_template('Say hello to {name}') +parser = StrOutputParser() + +from langchain_core.runnables import RunnablePassthrough +chain = {'name': RunnablePassthrough()} | prompt | parser + +assert chain is not None, '管道创建失败' +print('Runnable 管道正常') +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +# 4. 验证 Messages 模块 +echo -n "检查 Messages 模块... " +$DOCKER run --rm "$IMAGE" python3.11 -c " +from langchain_core.messages import HumanMessage, AIMessage, SystemMessage + +msg = HumanMessage(content='Hello') +assert msg.content == 'Hello', f'HumanMessage content 错误: {msg.content}' + +sys_msg = SystemMessage(content='You are a helpful assistant') +assert sys_msg.type == 'system', f'SystemMessage type 错误: {sys_msg.type}' + +ai_msg = AIMessage(content='Hi there!') +assert ai_msg.type == 'ai', f'AIMessage type 错误: {ai_msg.type}' + +print('Messages 模块正常') +" && echo "✓ 通过" || { echo "✗ 失败"; exit 1; } + +echo "=== 所有测试通过 ==="