jupyter ai 结合local llm 实现思路

devtools/2025/1/17 14:46:38/

参考链接:

jupyter ai develop 开发文档

https://jupyter-ai.readthedocs.io/en/latest/developers/index.html

langchain custom LLM 开发文档


https://python.langchain.com/v0.1/docs/modules/model_io/llms/custom_llm/

 

stackoverflow :intergrate Local LLM with jupyter ai question

https://stackoverflow.com/questions/78989389/jupyterai-local-llm-integration/78989646#78989646

作者krassowski blog ,关于jupyter lab 有117个post

https://stackoverflow.com/users/6646912/krassowski 

 

====================================

思路

1。Briefly, define the CustomLLM with something like:

from typing import Any, Dict, Iterator, List, Mapping, Optionalfrom langchain_core.callbacks.manager import CallbackManagerForLLMRun
from langchain_core.language_models.llms import LLM
from langchain_core.outputs import GenerationChunkclass CustomLLM(LLM):def _call(self,prompt: str,stop: Optional[List[str]] = None,run_manager: Optional[CallbackManagerForLLMRun] = None,**kwargs: Any,) -> str:payload = ... # TODO: pass `prompt` to payload here# TODO: define `headers`response = requests.request(method="POST", url="10.1xx.1xx.50:8084/generate", headers=headers, data=payload)return response.text  # TODO: change it accordingly@propertydef _llm_type(self) -> str:return "custom"

2。 create MyProvider

# my_package/my_provider.py
from jupyter_ai_magics import BaseProviderclass MyProvider(BaseProvider, CustomLLM):id = "my_provider"name = "My Provider"model_id_key = "model"models = ["your_model"]def __init__(self, **kwargs):model_id = kwargs.get("model_id")# you can use `model_id` in `CustomLLM` to change models within providersuper().__init__(**kwargs)

3。define an entrypoint 程序入口,配置pyproject.toml

# my_package/pyproject.toml
[project]
name = "my_package"
version = "0.0.1"[project.entry-points."jupyter_ai.model_providers"]
my-provider = "my_provider:MyProvider"

 

=================================

部署

cd mypackage/
pip install -e .


http://www.ppmy.cn/devtools/151297.html

相关文章

JS宏进阶: 工厂函数与构造函数

一、构造函数 在JavaScript中,构造函数是一种用于创建和初始化对象的特殊函数。构造函数的名字通常以大写字母开头,以区分于普通函数。通过new关键字调用构造函数,可以创建一个新的实例对象,并自动执行构造函数内部的代码来初始化…

二手车交易系统的设计与实现(代码+数据库+LW)

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统二手车交易信息管理难度大,容错率低&#xf…

【Sql递归查询】Mysql、Oracle、SQL Server、PostgreSQL 实现递归查询的区别与案例(详解)

文章目录 Mysql 5.7 递归查询Mysql 8 实现递归查询Oracle递归示例SQL Server 递归查询示例PostgreSQL 递归查询示例 更多相关内容可查看 Mysql 5.7 递归查询 MySQL 5.7 本身不直接支持标准 SQL 中的递归查询语法(如 WITH RECURSIVE 这种常见的递归查询方式&#xf…

持续集成 01|Gitee介绍、Pycharm使用Gitee

目录 一、理论 二、 git的简介与安装 三、Gitee 1、注册网易163邮箱 2、注册Gitee账号 3、git和gitee管理代码工作原理 三、PyCharm安装配置Gitee 四、Pycharm使用Gitee插件的五种场景 1、将 Gitee的新仓库 Checkout(检出)到 Pycharm中 2、推送…

关于二叉树深搜的算法v2.1

2331. 计算布尔二叉树的值 1、宏观 给定一个根节点,在进行运算结果前首先要知道该根节点左子树的整体结果和右子树的整体结果才能进行运算。 2、细节dfs 从上往下遍历,从下往上计算,遍历停止开始算的结果是遍历到叶子结点。 class Solution…

【微服务】SpringBoot 通用异常处理方案使用详解

目录 一、前言 二、SpringBoot 异常介绍 2.1 SpringBoot 中异常定义 2.1.1 SpringBoot 异常处理机制的重要性 2.2 常用的异常分类 2.3 常用的异常处理解决方案 三、springboot 异常处理操作实践 3.1 springboot自适应错误处理机制 3.1.1 使用默认错误页面 3.1.2 自定义…

Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)

本文介绍在Windows电脑中,下载、部署NVM(node.js version management)环境,并基于其安装不同版本的Node.js的方法。 在之前的文章Windows系统下载、部署Node.js与npm环境的方法(https://blog.csdn.net/zhebushibiaoshi…

4.Proto 3 语法详解

目录 proto 3 语法详解字段规则消息类型的定义与使用创建通讯录2.0版本enum类型升级通讯录至2.1版本Any类型升级通讯录至2.2版本oneof类型升级通讯录至2.3版本map类型升级通讯录至2.4版本默认值更新消息保留字段reserved创建通讯录3.0版本未知字段升级通讯录3.1版本前后兼容性选…