jupyter ai 结合local llm 实现思路

server/2025/1/16 5:52:02/

参考链接:

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/server/158747.html

相关文章

网管平台(进阶篇):路由器的管理实践

在当今数字化时代,路由器作为网络连接的核心设备,其管理对于确保网络的稳定、高效和安全至关重要。本文旨在深入探讨路由器管理的重要性、基本设置步骤、高级功能配置以及日常维护,帮助读者构建一个高效且安全的网络环境。 一、路由器管理的…

OpenCV基于均值漂移算法(pyrMeanShiftFiltering)的水彩画特效

1、均值漂移算法原理 pyrMeanShiftFiltering算法结合了均值迁移(Mean Shift)算法和图像金字塔(Image Pyramid)的概念,用于图像分割和平滑处理。以下是该算法的详细原理: 1.1 、均值迁移(Mean …

代码随想录-训练营-day7

344. 反转字符串 - 力扣(LeetCode) 这个题更多的可能想展示一下基本的反转字符串的操作,好像没什么好说的,我们可以不用swap函数,也可以用,我们甚至可以直接使用reverse函数(面试应该不可能考这…

Jenkins质量门禁设计方案的深入探讨

Jenkins作为一个开源的自动化服务器,它通过简化持续集成和持续交付流程,使得软件测试变得更加高效。质量门禁设计方案结合了Jenkins的以下几项核心功能: 持续集成(CI) :通过自动化构建和测试,提…

OSPF - 路由过滤的几种方法

😘1. 路由引入时过滤 可以通过引入路由时使用路由策略来过滤掉不想要的路由 在ASBR上配置,能够直接不产生对应的5类LSA import [外部自治系统] route-policy [路由策略名] //引入时考虑路由策略例如我现在要过滤掉从ISIS区域引入的3.3.4.4 [ABSR的OSPF…

NGC容器中快速搭建Jupyter环境

本文将介绍如下内容: 一、搭建 Docker Container 环境二、配置 Jupyter三、访问 Jupyter 页面并后台运行服务 一、搭建 Docker Container 环境 1、拉取 Docker Image NVIDAI NGC CONTAINER # 1. 进入 NVIDAI NGC CONTAINER,检索。Eg: Pytorch Tag #…

ansible之playbook实战

环境: client centos server ubuntu cat pro1.yml --- - hosts: www.test.comtasks:- name: Install Httpd Serverapt: nameapache2 statepresent- name: Configurate Httpd Servercopy: content"Iam client" dest/var/www/html/index.html- name: Start…

Ubuntu 系统支持高刷显示:探索与实践

Ubuntu 系统支持高刷显示:探索与实践 引言 随着技术的发展,显示器的刷新率从传统的60Hz逐渐提升到了120Hz、144Hz甚至更高。高刷新率屏幕能够提供更加流畅的视觉体验,尤其在游戏和动画播放中显得尤为重要。对于使用Ubuntu操作系统的用户来说…