Project Icon

llm-strategy

使用LLMs实现策略模式,简化抽象方法的自动执行

llm-strategy通过连接LLMs(例如OpenAI的GPT-3),实现Python抽象方法的自动执行。该工具利用doc字符串、类型注解和方法名生成提示,引导LLM执行方法并将结果转换为Python数据类。此项目不仅减少了代码编写,还能够自动解析结构化数据。此外,它还支持超参数跟踪和LLM执行轨迹收集,进行元优化。

项目背景

llm-strategy 是一个创新的软件工程项目,旨在利用大型语言模型(LLMs)的强大功能来实现策略模式。策略模式是一种设计模式,通常用于替代多分支的条件语句以实现动态行为选择。而 llm-strategy 则通过一种独特的方法来实现这一点,即使用 LLM 来填补接口类中抽象方法的实现。这种方法不仅能够简化代码结构,还可能大大减少对编写冗余代码的需求。

核心功能

llm-strategy 项目通过添加一个名为 llm_strategy 的装饰器来运作。这个装饰器可与像 OpenAI 的 GPT-3 这样的 LLM 联结,将特定请求传递给 LLM,再把 LLM 的响应结果转化为 Python 数据类型。目前,这一功能支持使用 Python 的 @dataclasses 数据类。而且,llm-strategy 能够利用方法/函数的文档字符串、类型注解以及名字来构建 LLM 的提示,从而引导其生成所需输出。

项目的一个长远目标是通过使用更便宜的 LLM 来实现结构化数据的自动解析,减少对传统 Python 代码的依赖。

研究应用

最新版本的 llm-strategy 包含了一个用于跟踪超参数和收集 LLM 迹线的包。这允许进行类似元优化这样的高级研究操作。例如,在项目的研究例子中,使用了泛型来进行超参数优化的简单实现。通过这种方式,用户可以从每一项任务中汲取教训来改进超参数的选择。

应用示例

以下是代码示例,展示了如何使用 llm-strategy:

from dataclasses import dataclass
from llm_strategy import llm_strategy
from langchain.llms import OpenAI

@llm_strategy(OpenAI(max_tokens=256))
@dataclass
class Customer:
    key: str
    first_name: str
    last_name: str
    birthdate: str
    address: str

    @property
    def age(self) -> int:
        """Return the current age of the customer.

        This is a computed property based on `birthdate` and the current year (2022).
        """
        raise NotImplementedError()

@dataclass
class CustomerDatabase:
    customers: list[Customer]

    def find_customer_key(self, query: str) -> list[str]:
        """使用自然语言查询匹配客户键(按相似度排序)。
        
        支持语义查询,而非 SQL 查询。因此可以搜索类似“出生于1990年的客户”这样的语句。

        Args:
            query: 自然语言查询

        Returns:
            最匹配客户在数据库中的索引。
        """
        raise NotImplementedError()

这种应用意味着您可以通过简单的自然语言指令达成复杂的数据查询和操作,无需编写详细的算法和逻辑代码。

如何贡献

想要为此项目做出贡献的人可以先克隆代码仓库,然后通过以下命令安装环境和预提交钩子:

make install

每当新建 pull request、合并至主分支或者创建新版本时,项目的 CI/CD 流水线都会被触发。此外,项目还提供了一整套工具和指南来帮助发布新版本、生成自动化文档以及启用代码覆盖率报告。

版本发布

要发布一个新版本,首先需要在 Pypi 上创建一个 API Token,并将其加入到 GitHub 项目的 secrets 中,名字为 PYPI_TOKEN。然后在 GitHub 上创建一个新版本,指明一个类似 *.*.* 的标签。

更多关于发布的详细过程,可以参考这一页

通过这些步骤,llm-strategy 项目不仅能提供一个强大的工具来简化代码设计,还能推动软件开发向着更加智能化的方向发展。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号