参考教程

大模型 API 推理全指南 | OneAPI + Ollama + vLLM + ChatTool

Ollama是什么?

Ollama 是一个强大的框架,设计用于在 Docker 容器中部署 LLM。Ollama 的主要功能是在 Docker 容器内部署和管理 LLM 的促进者,它使该过程变得非常简单。它帮助用户快速在本地运行大模型,通过简单的安装指令,可以让用户执行一条命令就在本地运行开源大型语言模型,例如 Llama 2。

相比 vllm 或者直接使用 huggingface 的模型推理 Pipeline,Ollama 极大降低了模型使用门槛:

  • 零 Python 代码以 OpenAI 风格启动模型
  • 支持在普通电脑上运行量化模型,低显存占用,支持 CPU 推理。

大致原理:将32 位double型参数量化到 4bit,会一定程度降低模型的表现,一种取舍,涉及模型压缩技术。
本地上百个大模型便携部署调用工具 Ollama 使用指南_ollama使用-CSDN博客

Ollama使用教程

运行地址:

网页版访问:

  • http://172.22.164.35:30012
  • 初次使用需要注册,并联系管理员审核
  • 管理员:
    • 21硕-潘梦源:kuromesi17@gmail.com
    • 23硕-李义:richardliyi@qq.com

已拉取的模型:

  1. gemma:7b 9B
  2. qwen:14b 14B
  3. llama3:8b 8B
  4. solar:latest 11B

image.png

Python直接调用Ollama

直接调用30011端口的Ollama服务。该方法不需要填入密钥。

from langchain.llms import Ollama
# 实例化ollama模型
ollama = Ollama(base_url="http://172.22.164.35:30011", model="llama3:8b")
# 向Ollama模型提出问题
question = "请用中文告诉我什么是无人机?"
answer = ollama(question)
print(answer)

OneAPI:实现API服务的高效管理和分发

oneapi:强大而易用的OpenAI接口管理和分发系统
OneAPI 是一个 API 管理和分发系统,支持几乎所有主流 API 服务。OneAPI 通过简单的配置允许使用一个 API 密钥调用不同的服务,实现服务的高效管理和分发。

  • 讯飞/智谱/千问/Gemini/Claude,其模型调用方式各不相同,但借助 OneAPI 能统一转化为 OpenAI 格式。
  • image.png

网页端OneAPI使用方法:

1.网页版注册登录:http://172.22.164.35:30013/

  • 初次注册使用需管理员审核
  • image.png

2.注册登录后使用:

  1. 可联系管理员修改用户余额,随后自行创建独享令牌,接入自己私有的渠道image.png
  2. 也可以联系管理员,使用已有的公共令牌image.png

项目中接入One API代码举例

快速可视化体验:ChatGPT Next Web

image.png

image.png

OneAPI: OpenAI格式调用所有厂商大模型

市面上有很多大模型,比如OpenAI,谷歌Gemini,智普AI,文心一言等等,各个模型的输入输出都不统一,而且鉴权方式不同。OneAPI就是把这些模型的输入输出和鉴权统一,然后用自己统一的base_url和api_key实现对不同模型的访问。
以Langchain调用为例,如果想尝试调用OpenAI/文心一言/智谱清言,需要使用不同的包,容易造成代码混乱,如下所示:

from langchain_wenxin.chat_models import ChatWenxin
llm = ChatWenxin()
print(llm([HumanMessage(content="你好")]))
# 完整参考:https://python.langchain.com/docs/integrations/chat/zhipuai/
chat = ChatZhipuAI(
    model="glm-4",
    temperature=0.5,
)

让GLM-4以OpenAI的形式融入langchain生态
OneAPI能够统一各大厂商的大模型调用方式。可以通过标准的OpenAI接口,仅需修改:

  1. base_url
  2. model_name
  3. api_key

就能以OpenAI风格的统一接口,调用不同大模型。

公共令牌快速试用:

Public公共令牌可调用的模型名称:
服务器运行:

  1. ollama-llama3:8b
  2. ollama-gemma:7b
  3. ollama-qwen:14b

外部渠道(绑定的管理员个人密钥)

  1. deepseek-chat
  2. deepseek-coder
    ONEAPI_KEY = "sk-oxiPOYlrpwr30y880cE1Bc3dE70844BeB24516C0DeA2A9Bc"

希望调用更多模型,或者愿意共享自己私有API-KEY给大家一起使用的,请联系管理员(尤其后者)
image.png

Langchain方式调用示例:

from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage

# ModelName 参考令牌可提供调用的模型名
MODEL_NAME = "deepseek-chat"
# MODEL_NAME = "ollama-qwen:14b"
BASE_URL = "http://172.22.164.35:30013/v1"

# ONEAPI_KEY 是提供统一方式调用不同大模型厂商的密钥。请注意与OPENAI的OPENAI KEY区分。
ONEAPI_KEY = "sk-oxiPOYlrpwr30y880cE1Bc3dE70844BeB24516C0DeA2A9Bc"

# 专属OpenAI 的密钥。此处需填入自己的密钥。
# OPENAI_KEY = "sk-xxxx"

# llm = OpenAI()方式在最新版的OpenAI包中可能会提示方法过期,推荐使用ChatOpenAI 进行初始化
# llm = OpenAI(model_name=MODEL_NAME,openai_api_key=OPENAI_KEY,openai_api_base=BASE_URL)

chat_model = ChatOpenAI(
    model_name=MODEL_NAME, openai_api_key=ONEAPI_KEY, openai_api_base=BASE_URL
)

text = "你是哪个大模型?"

messages = [HumanMessage(content=text)]

print("ChatModels运行结果如下:")
print(chat_model.invoke(messages).content)

ChatTool方式调用参考:

# 设置环境变量或直接在代码中指定
BASE_URL = "http://172.22.164.35:30013/v1"
API_KEY = "sk-oxiPOYlrpwr30y880cE1Bc3dE70844BeB24516C0DeA2A9Bc"

import chattool

chattool.api_key = API_KEY
chattool.api_base = BASE_URL

from chattool import Chat

chat = Chat()

chat.model = "ollama-qwen:14b"

chat.user("你是哪个大模型?")
resp = chat.getresponse()

# 继续对话
chat.user("我们实验室的名字叫做智能韧控,请你解读这个名字的含义")
next_resp = chat.getresponse()

# 保存对话内容
chat.save("chat.json", mode="w")  # 默认为 "a"

# 打印对话历史。当选用ollma模型时都比较慢,需耐心等待
chat.print_log()

输出结果:

user
---------------
你是哪个大模型?
---------------
assistant
---------------
我是来自阿里云的超大规模语言模型,我叫通义千问。
---------------
user
---------------
我们实验室的名字叫做智能韧控,请你解读这个名字的含义
---------------
assistant
---------------
"智能韧控"这个名字很有深意。

首先,“智能”一词强调了你们实验室的核心技术,即利用人工智能、机器学习等先进技术进行研究和开发。

其次,“韧控”表达了你们关注的重点在于如何设计出具有韧性(能够抵御外界冲击并持续运行的能力)的系统或控制策略。这可能是与网络安全、自动化系统稳定性等相关领域的工作内容。

总之,“智能韧控”这个名字准确地反映了你们实验室致力于利用人工智能技术提升系统的韧性和可控性这一核心研究方向。

HTTP POST方式参考

9a8cf6e41ec8e3170f07688a5000b15.png
4d026bcb7018201081b561b77eaf65f.png

觉得服务器Ollama大模型太慢?

免费大模型一览:

模型列表_模型服务灵积(DashScope)-阿里云帮助中心

最新推荐DeepSeek:领先性能,超低价格

image.pngimage.png

DeepSeek | 深度求索

接口文档

DeepSeek Platform

Langchain教程

Langchain-Chatchat + 阿里通义千问Qwen 保姆级教程 | 次世代知识管理解决方案

DashScope

DashScope灵积模型产品有哪些功能_模型服务灵积(DashScope)-阿里云帮助中心


0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注