Mellea集成指南:与LangChain、Ollama等主流工具无缝对接教程

【免费下载链接】mellea Mellea is a library for writing generative programs. 【免费下载链接】mellea 项目地址: https://gitcode.com/gh_mirrors/me/mellea

Mellea是一个功能强大的生成式程序库,能够轻松与LangChain、Ollama等主流工具集成,为开发者提供灵活高效的AI应用开发体验。本教程将详细介绍如何实现Mellea与这些工具的无缝对接,帮助你快速构建强大的生成式AI应用。

Mellea与Ollama集成:本地模型部署与使用

Ollama是Mellea的默认后端,它允许你在本地运行各种大型语言模型,无需API密钥,是快速开始使用Mellea的理想选择。

安装与配置Ollama

首先,你需要安装Ollama并启动服务器。根据你的操作系统,使用以下命令:

# macOS
brew install ollama

# Linux (one-line installer)
curl -fsSL https://ollama.ai/install.sh | sh

安装完成后,启动Ollama服务器:

ollama serve

在macOS上,通过Homebrew或.dmg安装会自动将服务器作为后台服务启动。

Mellea连接Ollama的基本用法

Mellea的start_session()函数默认连接到本地Ollama服务器(localhost:11434),并使用IBM Granite 4 Micro(granite4.1:3b)模型。以下是一个简单的示例:

import mellea

m = mellea.start_session()
email = m.instruct("Write an email inviting the team to a meeting.")
print(str(email))

首次运行时,Mellea会自动下载所需的模型(约2GB)。后续运行将直接使用本地缓存的模型,启动速度更快。

切换Ollama模型

你可以轻松切换Ollama支持的任何模型。例如,使用Llama 3.2模型:

import mellea

m = mellea.start_session(model_id="llama3.2:3b")

Mellea还提供了model_ids常量,用于引用知名模型,自动使用正确的Ollama模型名称:

from mellea import start_session
from mellea.backends import model_ids

m = start_session(model_id=model_ids.IBM_GRANITE_3_3_8B)

Mellea与Ollama集成架构

自定义Ollama连接参数

如果Ollama运行在远程服务器或非默认端口,你可以通过环境变量或直接参数指定连接信息:

# 通过环境变量设置
export OLLAMA_HOST=http://my-gpu-server:11434

或在代码中直接指定:

from mellea import MelleaSession
from mellea.backends.ollama import OllamaModelBackend

m = MelleaSession(
    OllamaModelBackend(
        model_id="granite4.1:3b",
        base_url="http://my-gpu-server:11434",
    )
)

设置Ollama模型参数

你可以通过ModelOption设置生成参数,如温度、种子等:

from mellea import MelleaSession
from mellea.backends import ModelOption, model_ids
from mellea.backends.ollama import OllamaModelBackend

m = MelleaSession(
    OllamaModelBackend(
        model_id=model_ids.IBM_GRANITE_4_1_3B,
        model_options={
            ModelOption.TEMPERATURE: 0.1,
            ModelOption.SEED: 42,
        },
    )
)

Mellea与LangChain集成:工具桥接与会话迁移

Mellea与LangChain的集成主要体现在两个方面:工具桥接和会话迁移。这使得你可以充分利用LangChain的丰富生态系统,同时享受Mellea的强大生成能力。

使用LangChain工具

Mellea提供了MelleaTool.from_langchain()方法,可以将任何LangChain BaseTool包装为Mellea工具,以便在Mellea会话中使用:

from langchain.agents import tool
from mellea.stdlib.tools import MelleaTool

@tool
def add(a: int, b: int) -> int:
    """Add two numbers."""
    return a + b

# 将LangChain工具转换为Mellea工具
mellea_tool = MelleaTool.from_langchain(add)

这样,你就可以在Mellea中使用这个工具,无需重写现有代码。

迁移LangChain会话历史

当从LangChain迁移到Mellea或构建跨库系统时,你可能需要将LangChain的对话历史迁移到Mellea会话中。Mellea提供了convert_to_openai_messages函数,可以将LangChain消息转换为Mellea兼容的格式:

from langchain_core.messages import HumanMessage, AIMessage
from mellea.backends.openai import convert_to_openai_messages
from mellea.stdlib.context import ChatContext

# 现有的LangChain对话历史
langchain_history = [
    HumanMessage(content="What's the weather in Paris?"),
    AIMessage(content="I don't have real-time data, but I can help with general info about Paris."),
]

# 转换为OpenAI格式的消息
openai_messages = convert_to_openai_messages(langchain_history)

# 在Mellea中使用转换后的历史
ctx = ChatContext(messages=openai_messages)
m = mellea.start_session(ctx=ctx)

# 继续对话
response = m.chat("What are the main attractions in Paris?")
print(str(response))

Mellea与LangChain集成示例

Mellea架构概览:多工具集成的灵活性

Mellea的架构设计使其能够轻松集成多种工具和后端,为开发者提供极大的灵活性。下图展示了Mellea的组件结构和与第三方工具的集成方式。

Mellea组件架构

Mellea的核心组件包括:

  • Stdlib:提供聊天、指令等基础功能
  • Base:包含上下文管理和核心数据结构
  • Backends:支持多种模型后端,如Ollama、OpenAI、HuggingFace等
  • Mellea Session:提供统一的API接口,简化开发流程

这种模块化设计使得Mellea能够无缝集成LangChain、Ollama等工具,同时保持代码的简洁和可维护性。

实际应用示例:构建强大的生成式AI应用

结合Mellea与LangChain、Ollama,你可以构建各种强大的生成式AI应用。以下是一些常见的应用场景:

1. 本地知识库问答系统

使用Ollama在本地运行大型语言模型,结合LangChain的文档加载和向量存储工具,构建私有的知识库问答系统:

from langchain.document_loaders import TextLoader
from langchain.embeddings import OllamaEmbeddings
from langchain.vectorstores import FAISS
from mellea import start_session

# 加载文档
loader = TextLoader("documents/knowledge.txt")
documents = loader.load_and_split()

# 创建向量存储
embeddings = OllamaEmbeddings(model="nomic-embed-text")
db = FAISS.from_documents(documents, embeddings)

# 创建Mellea会话
m = start_session(model_id="granite4.1:3b")

# 问答循环
while True:
    query = input("您的问题: ")
    docs = db.similarity_search(query)
    context = "\n".join([doc.page_content for doc in docs])
    response = m.instruct(f"基于以下上下文回答问题: {context}\n问题: {query}")
    print("回答:", str(response))

2. 智能代码生成助手

结合Mellea的生成能力和LangChain的代码分析工具,构建智能代码生成助手:

from langchain.tools import PythonAstREPLTool
from mellea.stdlib.tools import MelleaTool
from mellea import start_session

# 创建Python代码执行工具
python_tool = MelleaTool.from_langchain(PythonAstREPLTool())

# 创建Mellea会话并注册工具
m = start_session(model_id="granite4.1:3b")
m.register_tools([python_tool])

# 生成并执行代码
response = m.instruct("编写一个Python函数来计算斐波那契数列的第n项,并测试n=10的情况")
print(str(response))

总结:释放Mellea与主流工具集成的全部潜力

通过本教程,你已经了解了如何将Mellea与LangChain、Ollama等主流工具无缝集成。这种集成不仅扩展了Mellea的功能,还让你能够充分利用现有工具生态系统,快速构建强大的生成式AI应用。

无论是本地模型部署、工具桥接还是会话迁移,Mellea都提供了简单直观的API,使集成过程变得轻松愉快。随着AI技术的不断发展,Mellea将继续扩展其集成能力,为开发者提供更多可能性。

现在,是时候开始探索Mellea与其他工具的集成了。访问docs/integrations/了解更多集成指南,释放Mellea的全部潜力!

下一步学习资源

【免费下载链接】mellea Mellea is a library for writing generative programs. 【免费下载链接】mellea 项目地址: https://gitcode.com/gh_mirrors/me/mellea

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐