了解大模型通用接口,掌握大模型替换方法, 框架二次开发
LLMS
大型语言模型(Large Language Models,LLMs)是LangChain的核心组件。LangChain并不提供自己的LLMs,而是提供了一个标准接口,用于与许多不同的LLMs进行交互。
具体来说,这个接口接受一个字符串作为输入,并返回一个字符串。
from langchain_community.llms.tongyi import Tongyi
from dotenv import find_dotenv, load_dotenv
import os
load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]
model = Tongyi(model_name='qwen-max')
res = model.invoke('你好')
print(res)
自定义LLMS,二次封装
from typing import Any,List, Dict, Optional
from langchain_core.callbacks.manager import CallbackManagerForLLMRun
from langchain_core.language_models.llms import BaseLLM
from langchain_core.outputs import Generation, LLMResult
class Superman(BaseLLM):
model_name: str = "superman"
def _generate(self, prompts: List[str], *args, **kwargs) -> LLMResult:
results = []
for prompt in prompts:
generation_obj = Generation(text=f'收到,这边是爱设计具美武大郎服务,来个服务么?{prompt}') # 没有大语言模型定义一个假的
results.append(generation_obj)
return LLMResult(generations=[results]) #格式 根据源码判断,查看源码
@property
def _llm_type(self) -> str:
"""
Retun type of llm
"""
return "superman"
# 引用自定义的大语言模型
model = Superman()
print(model)
# 调用 大模型
res = model.invoke("来条龙。")
print(res)
源码BaseLLM .
在BaseLLM 这个类里面还有一个 抽象方法 ,搜索 abs关键字,
假设有一个superman的大模型。我们就可以在langchain生态中使用这个大模型。
设置 提示词模板,引用自定义的模型
from typing import Any,List, Dict, Optional
from langchain_core.callbacks.manager import CallbackManagerForLLMRun
from langchain_core.language_models.llms import BaseLLM
from langchain_core.outputs import Generation, LLMResult
from langchain_core.prompts import PromptTemplate
class Superman(BaseLLM):
model_name: str = "superman"
def _generate(self, prompts: List[str], *args, **kwargs) -> LLMResult:
results = []
for prompt in prompts:
generation_obj = Generation(text=f'收到,这边是爱设计具美武大郎服务,来个服务么?{prompt}') # 没有大语言模型定义一个假的
results.append(generation_obj)
return LLMResult(generations=[results]) #格式 根据源码判断,查看源码
@property
def _llm_type(self) -> str:
"""
Retun type of llm
在BaseLLM 这个类里面还有一个 抽象方法 ,搜索 abs关键字
"""
return "superman"
model = Superman()
# 提示词模板
prompt = PromptTemplate.from_template("你好,大郎")
# 实例化
chain = prompt | model
# 调用 大模型
res = chain.invoke({}) # 提示词模版没有设置占位符,传递一个空字典就行
print(res)
end...
本文来自博客园,作者:王竹笙,转载请注明原文链接:https://www.cnblogs.com/edeny/p/18648376
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App