Press "Enter" to skip to content

延长您的GPT时间与C#

几周前,OpenAI发布了GPTs。 GPT基本上是由OpenAI托管的自定义ChatGPT聊天机器人。 其最关键的特点是可以通过API扩展您的GPTs。 Magic的最关键功能是轻松创建API。

因此,Magic和GPTs成为完美的组合,可以让您创建自己的自定义GPT,我们在几天前的一篇文章中已经演示了如何在几秒钟内创建一个基于低代码CRUD的GPT。

当然,在处理数据库时,CRUD是至关重要的。 但是,有时候您需要一些自定义功能,可以让您使用完全独特的C#代码扩展您的GPT,这篇文章演示了如何实现这一点。

代码

首先,您需要一些C#代码。 在您的”modules”文件夹下创建一个名为”cs-demo”的新文件夹,并在其中创建一个名为”slot.cs”的文件,并将以下代码放入您的文件中。

完成后,您的Hyper IDE应与以下内容相似,不包括”get-employee-details.get.hl”文件,我们稍后在本文中会回到它。

C#代码解释

上述代码声明了一个名为”[get-employee-details]”的slot。 它接受一个名称作为参数,并根据参数的值返回Tage、Thomas或Aria的数据。编译完成后,可以使用以下代码在Hyperlambda Playground中调用上述代码:

Hyperlambda的一个重要特点是能够在slot中传入和返回图对象。 上述C#代码假定调用者将一个名称作为调用的值传入,即作为您的C#代码的唯一参数,然后返回三个新节点作为调用的子级。 在Hyperlambda Playground中执行上述代码后,将得到以下结果。

请注意,我们在C#代码中的GetEx<string>()调用允许我们在代码中评估lambda表达式。

创建API端点

在使用之前,我们需要编译代码并将其封装为HTTP端点。 Magic的一个特性是能够几乎将C#用作脚本语言,这意味着我们可以实时编译代码,并以几乎与通常使用JavaScript或Python等脚本语言相同的方式执行它。

该功能使我们能够将编译过程简单地包装在Hyperlambda端点内部,实时编译代码,执行代码并返回执行结果。在您的cs-demo文件夹中创建一个名为”get-employee-details.get.hl”的新文件,并将以下内容放入您的文件中。

在下面的视频中,我们应用了一些智能缓存,以避免在每个请求向我们的端点发送时重新编译代码,但仍然保持代码易于理解。因此,在上面的代码中,我们基本上完成了,并且我们已经可以将GPT与API端点连接起来。在Magic中使用Manager/Endpoints组件执行您的端点,如下所示。

确保在过滤器中选择”employee”以找到端点,并将”thomas”作为您的名称参数添加进去。

Hyperlambda代码解释

上述Hyperlambda代码加载您的C#文件,然后编译代码,产生一个原始的byte[],我们动态将其作为程序集加载,将程序集注入到我们的AppDomain中。这意味着您可以在不手动触发任何重新编译的情况下更改C#代码,并且新代码将动态编译并立即反映您的更改。

再次強調,通過使用 Magic 和 Hyperlambda,你可以將 C# 視為一種腳本語言。在這篇文章中,我會帶你進一步了解有關此的一些技巧。在真實應用中,你應該避免在每次調用時重新編譯 C# 代碼,因為這是一個昂貴的過程。但為了保持代碼的清晰和易於理解,在上面的示例中我避免了這一點。

將你的端點連接到一個 GPT

在這一步,我們只需要將 API 端點連接到一個自定義的 GPT 。創建一個新的 GPT,並確保在 Magic 的端點組件中將端點過濾在 openapi 上。這將給你一個類似下面的端點。

在完成上述操作後,你可以將生成的 JSON 或端點的 URL 複製到端點組件的複製按鈕中。到這一步,我們只需要將這個 OpenAPI 規範作為我們 GPT 的一個 Action 提交給 OpenAI,然後就完成了。

測試你的 GPT

到這一步,你基本上已經完成了,你可以開始測試你的 GPT 了。你可以問一些問題,例如:

  • 蒂奇的電話號碼是多少?
  • 托馬斯是一名員工,使用我的 “get employee” 操作查找他的信息。
  • 艾麗婭的電子郵件地址是什麼?
  • 等等…

下面是一個使用我們的 GPT 的示例。

如你所見,我們的 GPT 正確地將 “Tage” 傳遞給 API 端點,然後返回 Tage 的電子郵件地址並在與你的對話中使用該電子郵件地址。到這一步,你可以創建一個例如 Send email 端點,ChatGPT 會幫助你撰寫電子郵件並將其發送給 Tage — 但這是另一天的練習。現在,你可以使用我下面創建的自定義 GPT 進行測試。

觀看下面的視頻,讓我一步步領你完成整個過程。

Leave a Reply

Your email address will not be published. Required fields are marked *