赞
踩
目录
当我们谈论大预言模型时,通常指的是像自然语言处理模型。大预言模型是一种通过大规模训练来学习语言规律和上下文的模型,它可以理解和生成人类语言。
大预言模型的应用非常广泛。以下是一些常见的应用领域:
文字生成:大预言模型可以生成各种类型的文字,如文章、新闻报道、故事、诗歌等。它可以根据给定的提示或问题生成连贯的文字内容。
对话系统:大预言模型可以用于构建智能对话系统,能够理解用户的问题并给出相应的回答。这种模型在虚拟助手、客服机器人和智能聊天程序中得到广泛应用。
语言翻译:大预言模型可以进行语言翻译,将一种语言转换成另一种语言。它可以帮助人们在不同语言之间进行交流和理解。
文本摘要:大预言模型可以读取一篇文章或一段文字,并生成相应的摘要,提取出关键信息和要点,减少人们阅读的工作量。
信息检索:大预言模型可以根据用户的查询,在大规模的文本集合中找到相关的信息并进行检索。这对于搜索引擎和信息管理非常有用。
自动化写作:大预言模型可以根据给定的指导或模式,自动生成各种类型的文本,如广告文案、新闻报道、科技说明等。这在广告和内容创作领域有很大的潜力。
需要注意的是,尽管大预言模型具有令人印象深刻的能力,但它也存在一些限制和挑战。例如,它可能会产生不准确或有偏见的回答,对某些敏感话题的处理可能不恰当,以及可能缺乏常识性推理能力。因此,在使用大预言模型时需要谨慎,并结合人类审查和指导,以确保生成的内容的质量和准确性。
Pleisto.Flappy 是由一家国内公司推出的大语言人工智能开发中间件。其开发的主要目的是消除不同变成语言和不同知识背景以及不同开发目的程序员在开发LLM应用时遇到的瓶颈。目前支持的语言有TypeScript、JavaScript、Java/Kotlin、C#,未来还会有更多的语言支持。大家有兴趣可以去Github的主页上点一个Start呢 pleisto/flappy: Production-Ready LLM Agent SDK for Every Developer (github.com)
Pleisto.Flappy目前实现了自定义函数编排与执行以及LLM调用抽象。用户可以通过自行编写不同功能的函数,让LLM根据需求对其进行编排从而实现自动化执行。并且使用JsonSchema对LLM返回结果进行规范,以便作为参数传递给其他程序使用。
要使用Pleisto.Flappy这个库进行开发,我们需要提前准备以下环境:
由于不需要在本地运行LLM语言,所以对本机硬件没有特别要求。
首先,我们需要 VisualStudioSetup.exe 来安装VS2022,这个可以从微软官网下载。Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com)
为方便大家使用,我把它上传到了CSDN上: 【免费】VisualStudioSetup2022资源-CSDN文库
下载完成之后,双击进行安装。
首先,我们创建一个命令行控制台工程。
Pleisto.Flappy 支持大多数主流.net版本。这里选择6.0即可
Pleisto.Flappy的预览版已经发布到Nuget Gallery上了,可以直接在VS中引用。
打开VS的NuGet包管理界面
输入Pleisto进行搜索,即可发现Pleisto.Flappy包。
- // See https://aka.ms/new-console-template for more information
- using Newtonsoft.Json;
- using Newtonsoft.Json.Converters;
- using Newtonsoft.Json.Linq;
- using OpenAI_API;
- using Pleisto.Flappy;
- using Pleisto.Flappy.Interfaces;
- using Pleisto.Flappy.LLM;
- using System.ComponentModel;
- using System.Diagnostics.CodeAnalysis;
-
- // OpenAI APIKey
- // 从环境变量读取,Token请自行准备
- string OpenAIApiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
-
- // OpenAI 模型
- // 这边先使用 GPT-3.5-Turbo
- const string OpenAIModel = "gpt-3.5-turbo";
-
- // LLM 大语言API客户端
- var gpt35 = new ChatGPT(new OpenAIAPI
- {
- Auth = new APIAuthentication(apiKey: OpenAIApiKey),
- ApiUrlFormat = "https://openai.api2d.net/{0}/{1}",
- ApiVersion = "v1",
- }, OpenAIModel, null);
-
- // Flappy Agent
- var flappyAgent = new FlappyAgent(new FlappyAgentConfig
- {
- LLM = gpt35, // 确定使用的LLM
- Functions = new IFlappyFunction[] // 自定义函数
- {
- // 定义一个数据合成函数,让LLM帮我们完成部分事务
- new SynthesizedFunction<LLMArgs,LLMReturn>(new SynthesizedFunctionDefinition<LLMArgs, LLMReturn>
- {
- Name = "getMeta",
- Description= "从诉讼全文中提取元数据.",
- Args = new LLMArgs(),
- ReturnType = new LLMReturn()
- }),
- // 定义一个本地执行函数,以给LLM提供数据
- new InvokeFunction<MetaArgs,MetaReturns>(new InvokeFunctionDefinition<MetaArgs, MetaReturns>
- {
- Name = "getLatestLawsuitsByPlaintiff",
- Description = "获取原告的最新诉讼",
- Args = new MetaArgs(),
- ReturnType = new MetaReturns(),
- Resolve= (args) =>
- {
- return Task.FromResult(new MetaReturns
- {
- lawsuit = "As Alex Jones continues telling his Infowars audience about his money problems and pleads for them to buy his products, his own documents show life is not all that bad — his net worth is around $14 million and his personal spending topped $93,000 in July alone, including thousands of dollars on meals and entertainment. The conspiracy theorist and his lawyers file monthly financial reports in his personal bankruptcy case, and the latest one has struck a nerve with the families of victims of Sandy Hook Elementary School shooting. They're still seeking the $1.5 billion they won last year in lawsuits against Jones and his media company for repeatedly calling the 2012 massacre a hoax on his shows. “It is disturbing that Alex Jones continues to spend money on excessive household expenditures and his extravagant lifestyle when that money rightfully belongs to the families he spent years tormenting,” said Christopher Mattei, a Connecticut lawyer for the families. “The families are increasingly concerned and will continue to contest these matters in court.” In an Aug. 29 court filing, lawyers for the families said that if Jones doesn’t reduce his personal expenses to a “reasonable” level, they will ask the bankruptcy judge to bar him from “further waste of estate assets,” appoint a trustee to oversee his spending, or dismiss the bankruptcy case. On his Infowars show Tuesday, Jones said he’s not doing anything wrong."
- });
- }
- })
- }
- }, null, null);
-
- // 向LLM提出我们的需求
- var data = (await flappyAgent.CreateExecutePlan("找到原告为张三的最新案件并返回它的元数据"));
- Console.WriteLine($"====================== Final Result =========================");
- Console.WriteLine(data.ToString());
- Console.WriteLine($"====================== Final Result Of Data =========================");
-
- internal class MetaArgs
- {
-
- }
-
- /// <summary>
- /// 为LLM提供数据
- /// </summary>
- internal class MetaReturns
- {
- [Description("法律原文")]
- public string lawsuit { get; set; }
- }
-
- /// <summary>
- /// LLM 执行参数
- /// </summary>
- internal class LLMArgs
- {
- /// <summary>
- /// 诉讼原文
- /// </summary>
- [Description("诉讼原文")]
- public string plantiff { get; set; }
- }
-
- /// <summary>
- /// LLM 执行结果
- /// </summary>
- [JsonObject(ItemRequired = Required.Always)]
- internal class LLMReturn
- {
- /// <summary>
- /// 判决
- /// </summary>
- [JsonConverter(typeof(StringEnumConverter))]
- [DefaultValue(Verdict.Unknown)]
- public Verdict verdict { get; set; } = Verdict.Unknown;
-
- /// <summary>
- /// 原告
- /// </summary>
- public string plaintiff { get; set; } = string.Empty;
-
- /// <summary>
- /// 被告人
- /// </summary>
- public string defendant { get; set; } = string.Empty;
-
- /// <summary>
- /// 判断选项
- /// </summary>
- [AllowNull]
- public string[] judgeOptions { get; set; } = Array.Empty<string>();
- }
-
- /// <summary>
- /// 判决内容
- /// </summary>
- public enum Verdict
- { /// <summary>
- /// 未知
- /// </summary>
- Unknown,
- /// <summary>
- /// 无辜的
- /// </summary>
- Innocent,
-
- /// <summary>
- /// 有罪
- /// </summary>
- Guilty,
-
-
- }
由于LLM具有不确定性,有时候可能需要重试多次才能获取比较可靠的结果。
例子可以在CSDN进行下载【免费】Pleisto.FlappyLawTestExample资源-CSDN文库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。