项目简介
使用 LOTUS 轻松构建知识密集型LLM应用程序,对您的数据进行推理!
LOTUS (LLMs Over Tables of Unstructured and Structured Data) 提供了声明性编程模型和优化的查询引擎,用于在结构化和非结构化数据上提供强大的基于推理的查询管道!我们提供了一个简单直观的类似 Pandas 的 API,它实现了语义运算符。
关键概念:语义运算符
LOTUS 的编程模型由语义运算符提供支持。语义运算符通过一组基于模块化语言的运算符无缝扩展关系模型,使您能够编写具有高级逻辑的基于 AI 的管道,而将其余工作留给查询引擎!程序员可以轻松地组合语义运算符和传统的关系数据操作,以构建最先进的人工智能系统,对大量知识库进行推理。
下面是 LOTUS 提供的一些语义运算符。要了解有关语义运算符的更多信息,请查看完整文档、运行colab 教程或阅读完整研究论文。您还可以参考这些示例来在 LOTUS 中使用语义运算符。
Operator | Description |
---|---|
sem_map | Map each row of the dataframe using a natural language projection |
sem_filter | Keep rows that match the natural language predicate |
sem_agg | Performs a natural language aggregation across all rows of a column (e.g. for summarization) |
sem_topk | Order the dataframe by some natural langauge sorting criteria |
sem_join | Join two dataframes based on a natural language predicate |
sem_index | Create a semantic similarity index over a text column |
sem_search | Perform top-k search the over a text column |
安装
conda create -n lotus python=3.9 -y
conda activate lotus
pip install lotus-ai
快速开始
如果您已经熟悉 Pandas,那么上手将会轻而易举!下面我们提供一个使用语义连接运算符的简单示例程序。与许多语义运算符一样,连接由langex (自然语言表达式)指定,程序员用它来指定操作。每个 langex 都由一个或多个表列参数化,用括号表示。连接的 langex 用作谓词,并由右连接键和左连接键参数化。
import pandas as pd
import lotus
from lotus.models import OpenAIModel
# configure the LM, and remember to export your API key
lm = OpenAIModel()
lotus.settings.configure(lm=lm)
# create dataframes with course names and skills
courses_data = {
"Course Name": [
"History of the Atlantic World",
"Riemannian Geometry",
"Operating Systems",
"Food Science",
"Compilers",
"Intro to computer science",
]
}
skills_data = {"Skill": ["Math", "Computer Science"]}
courses_df = pd.DataFrame(courses_data)
skills_df = pd.DataFrame(skills_data)
# lotus sem join
res = courses_df.sem_join(skills_df, "Taking {Course Name} will help me learn {Skill}")
print(res)
项目链接
https://github.com/TAG-Research/lotus
扫码加入技术交流群,备注「开发语言-城市-昵称」
合作请注明
关注「GitHubStore」公众号