项目介绍:NPI
NPI,全称为自然语言编程接口(Natural-language Programming Interface),是一个开源平台,旨在为AI代理提供使用工具的API,使其能够在虚拟世界中操作并与各种软件工具和应用程序进行交互。它被读作“Nπ”。
背景
NPI正在积极开发中,未来版本的API可能会有所变动。建议用户使用命令行工具进行尝试。目前,该平台的在线测试场正在建设中,用户可以通过在线示例了解NPI的使用案例和潜力。
平台特点
NPI通过提供工具使用的API,使AI代理能够采用自然语言操作与任务相关的软件和工具。这一特性使AI在虚拟世界中的操作能力大大增强,拓宽了AI应用的场景。
快速开始
安装
要开始使用NPI,只需在命令行输入如下命令即可安装:
pip install npiai
创建简单工具示例
在一分钟内上手NPI,用户可以创建一个计算斐波纳契数的简单工具。首先,创建一个名为main.py
的Python文件,添加以下代码:
import os
import json
import asyncio
from openai import OpenAI
from npiai import FunctionTool, function
class MyTool(FunctionTool):
name = 'Fibonacci'
description = 'My first NPi tool'
@function
def fibonacci(self, n: int) -> int:
if n == 0:
return 0
if n == 1:
return 1
return self.fibonacci(n - 1) + self.fibonacci(n - 2)
async def main():
async with MyTool() as tool:
print(f'The schema of the tool is\n\n {json.dumps(tool.tools, indent=2)}')
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))
messages = [{
"role": "user",
"content": "What's the 10-th fibonacci number?",
}]
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tool.tools,
tool_choice="auto",
max_tokens=4096,
)
response_message = response.choices[0].message
if response_message.tool_calls:
result = await tool.call(tool_calls=response_message.tool_calls)
print(f'The result of function\n\n {json.dumps(result, indent=2)}')
if __name__ == "__main__":
asyncio.run(main())
运行上述代码后,就可以看到NPI工具的函数以OpenAI函数调用格式返回的结果,即content: 55
。这意味着第10个斐波纳契数是55。
后续步骤
如果用户希望进一步探索NPI的功能,可以:
- 阅读详细文档来获取更多使用信息。
- 了解更多示例,查看其他可以实现的案例。
- 期待即将推出的NPI云服务。
许可证
NPI采用Apache 2.0许可证,用户可以根据该许可证自由使用和修改。
通过该平台,开发者能够迅速地创建并运行工具,大大简化了AI与软件的交互开发工作。NPI为开发者和AI用户提供了一个强大且灵活的框架,促进了AI在各类应用场景中的应用。