local-llm-function-calling 项目介绍
概述
local-llm-function-calling
项目是一个用于约束 Hugging Face 文本生成模型的工具。它通过强制执行 JSON 模式,帮助用户制定用于函数调用的提示,类似于 OpenAI 的函数调用功能,但与 OpenAI 不同的是,它实际执行了这些模式。
项目旨在提供一个 Generator
类,用户可以轻松生成文本并确保生成内容符合提供的提示和 JSON 模式。利用该库,用户可以方便地控制文本生成模型的输出。这得益于项目本身快速设计的 json-schema-enforcer
作为执行工具。
功能特点
- 将 Hugging Face 文本生成模型的输出约束为遵循特定的 JSON 模式。
- 提供构建函数调用提示的机制,从而实现精确的数据提取和格式化。
- 通过用户友好的
Generator
类简化文本生成过程。
安装方式
可以通过以下命令安装 local-llm-function-calling
库:
pip install local-llm-function-calling
使用示例
以下是 local-llm-function-calling
的简单使用示例:
from local_llm_function_calling import Generator
# 定义一个函数和模型
functions = [
{
"name": "get_current_weather",
"description": "获取给定位置的当前天气",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市和州,例如: San Francisco, CA",
"maxLength": 20,
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
]
# 使用 Hugging Face 模型和上述函数初始化生成器
generator = Generator.hf(functions, "gpt2")
# 使用提示生成文本
function_call = generator.generate("What is the weather like today in Brooklyn?")
print(function_call)
自定义约束
用户无需使用内置提示方法,您可以自己设计提示和约束,同时还可以利用约束生成特性:
from local_llm_function_calling import Constrainer
from local_llm_function_calling.model.huggingface import HuggingfaceModel
# 定义自己的约束
# (您也可以使用 local_llm_function_calling.JsonSchemaConstraint)
def lowercase_sentence_constraint(text: str):
# 必须返回 (is_valid, is_complete)
return [text.islower(), text.endswith(".")]
# 创建约束器
constrainer = Constrainer(HuggingfaceModel("gpt2"))
# 生成您的文本
generated = constrainer.generate("Prefix.\n", lowercase_sentence_constraint, max_len=10)
拓展和自定义
如果需要拓展或自定义提示结构,可以继承 TextPrompter
类。这允许用户根据特定需求修改提示生成过程。