Адрес проектаGitHub,Если у вас есть возможность, вы можете напрямую прочитать исходный документ.
Сначала следуйте документации и установите llama-cpp-python.
pip install llama-cpp-python
Далее, вам могут не хватать некоторых зависимостей. Это не описано в документации, но я разобрался с отсутствующими зависимостями и просто запустил их последовательно.
pip install uvicorn
pip install anyio
pip install starlette
pip install fastapi
pip install pydantic_settings
pip install sse_starlette
передовой API проходитьLlama
Классы обеспечивают простой хостингинтерфейс。пожалуйста, измените./models/7B/ggml-model.bin
Замените его на путь вашей модели, как показано ниже.
from llama_cpp import Llama
llm = Llama(model_path="./models/7B/ggml-model.bin")
output = llm("Q: Name the planets in the solar system? A: ", max_tokens=32, stop=["Q:", "\n"], echo=True)
print(output)
Возвращаемое значение выглядит следующим образом
{
"id": "cmpl-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"object": "text_completion",
"created": 1679561337,
"model": "./models/7B/ggml-model.bin",
"choices": [
{
"text": "Q: Name the planets in the solar system? A: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune and Pluto.",
"index": 0,
"logprobs": None,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 14,
"completion_tokens": 28,
"total_tokens": 42
}
}
Низкий уровень API прямойctypes
привязать кllama.cpp
. Весь Низкий уровень API Можно найти вllama_cpp/llama_cpp.pyнайден в,ипрямой镜像llama.hв C API 。
import llama_cpp
import ctypes
params = llama_cpp.llama_context_default_params()
# use bytes for char * params
ctx = llama_cpp.llama_init_from_file(b"./models/7b/ggml-model.bin", params)
max_tokens = params.n_ctx
# use ctypes arrays for array params
tokens = (llama_cpp.llama_token * int(max_tokens))()
n_tokens = llama_cpp.llama_tokenize(ctx, b"Q: Name the planets in the solar system? A: ", tokens, max_tokens, add_bos=llama_cpp.c_bool(True))
llama_cpp.llama_free(ctx)
llama-cpp-python
提供一个 Web сервер, задуманный как OpenAI API прямая замена.
python3 -m llama_cpp.server --model models/7B/ggml-model.bin
你Можно найти в上面的命令运行成功后访问документ
Документация на английском языке. Если вам нужен диалоговый интерфейс, я написал пример на Python.
import requests
url = 'http://localhost:8000/v1/chat/completions'
headers = {
'accept': 'application/json',
'Content-Type': 'application/json'
}
data = {
'messages': [
{
'content': 'You are a helpful assistant.',
'role': 'system'
},
{
'content': 'What is the capital of France?',
'role': 'user'
}
]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
print(response.json()['choices'][0]['message']['content'])
Если вы хотите построить свой собственный,Пожалуйста, соблюдайте соответствующие законы и правила.,Запустите сопутствующие сервисы на собственном сервере,иобратный проксиhttp://localhost:8000
адрес. Например, вы поменялись проксиприезжатьhttps://example.com
,Тогда ваш адрес для разговораhttps://example.com/v1/chat/completions
。когда вы хотите использоватьgptВам не обязательно смотреть на это, когдаopenaiЕго лицо изменилось,Непосредственно разверните свой собственный интерфейс и запросите его самостоятельно.,Или apibase пишет свой интерфейс при вызове библиотеки openai.