A library for managing LLM models
Project description
Description
ModelhubClient: A Python client for the Modelhub API
Installation
pip install puyuan_modelhub --user
Usage
OpenAI Client
from openai import OpenAI
client = OpenAI(api_key="xxx", base_url="xxxx")
client.chat.xxxxx
ModelhubClient
Initialize a client
from modelhub import ModelhubClient
client = ModelhubClient(
host="https://xxxx.com/api/",
user_name="xxxx",
user_password="xxxx",
model="xxx", # Optional
)
get supported models
client.supported_models
Get model supported params
client.get_supported_params("Minimax")
perform a chat query
response = client.chat(
query,
model="xxx", # Optional(use model in client construction)
history=history,
parameters=dict(
key1=value1,
key2=value2
)
)
Get model embeddings
client.get_embeddings(["你好", "Hello"], model="m3e")
Response structure
generated_text: response_text from model
history: generated history
details: generation details. Include tokens used, request duration, ...
History can be only used with ChatGLM3 now.
BaseMessage is the unit of history.
# import some pre-defined message types
from modelhub.common.types import SystemMessage, AIMessage, UserMessage
# construct history of your own
history = [
SystemMessage(content="xxx", other_value="xxxx"),
UserMessage(content="xxx", other="xxxx"),
]
VLMClient
Initailize a vlm client
from modelhub import VLMClient
client = VLMClient(...)
client.chat(prompt=..., image_path=..., parameters=...)
Chat with model
VLM Client chat add image_path param to Modelhub Client and other params are same.
client.chat("Hello?", image_path="xxx", model="m3e")
Examples
Use ChatCLM3 for tools calling
from modelhub import ModelhubClient, VLMClient
from modelhub.common.types import SystemMessage
client = ModelhubClient(
host="https://xxxxx/api/",
user_name="xxxxx",
user_password="xxxxx",
)
tools = [
{
"name": "track",
"description": "追踪指定股票的实时价格",
"parameters": {
"type": "object",
"properties": {"symbol": {"description": "需要追踪的股票代码"}},
"required": ["symbol"],
},
},
{
"name": "text-to-speech",
"description": "将文本转换为语音",
"parameters": {
"type": "object",
"properties": {
"text": {"description": "需要转换成语音的文本"},
"voice": {"description": "要使用的语音类型(男声、女声等)"},
"speed": {"description": "语音的速度(快、中等、慢等)"},
},
"required": ["text"],
},
},
]
# construct system history
history = [
SystemMessage(
content="Answer the following questions as best as you can. You have access to the following tools:",
tools=tools,
)
]
query = "帮我查询股票10111的价格"
# call ChatGLM3
response = client.chat(query, model="ChatGLM3", history=history)
history = response["history"]
print(response["generated_text"])
Output:
{"name": "track", "parameters": {"symbol": "10111"}}
# generate a fake result for track function call
result = {"price": 1232}
res = client.chat(
json.dumps(result),
parameters=dict(role="observation"), # Tell ChatGLM3 this is a function call result
model="ChatGLM3",
history=history,
)
print(res["generated_text"])
Output:
根据API调用结果,我得知当前股票的价格为1232。请问您需要我为您做什么?
Contact
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file puyuan_modelhub-1.0.13.tar.gz.
File metadata
- Download URL: puyuan_modelhub-1.0.13.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8b20d0683989ae9e177ff25e474bd45abcbb1f7ab304b9bd6e73473268a6881
|
|
| MD5 |
a89d8337a10b178909f208e2c093b7c4
|
|
| BLAKE2b-256 |
2bc2927059d6d744e78c2eb5dfc7d82b008eacdc4003e099d4dd684ad6280991
|
File details
Details for the file puyuan_modelhub-1.0.13-py2.py3-none-any.whl.
File metadata
- Download URL: puyuan_modelhub-1.0.13-py2.py3-none-any.whl
- Upload date:
- Size: 26.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58e4b92f40b481e666e888824ed857162441f9e002ece8813300ec23a537280e
|
|
| MD5 |
caaadc7b11952b537d18d6c0453a31b1
|
|
| BLAKE2b-256 |
a3834d461c4397794af40637279c6efac8911577d745abaa8eccbb417db6ee3e
|