Prompt Playground 7月开发记录

Prompt Playground 2023年7月开发记录

上个月的时候,出于日常工作需求,做了一个简单的提示词调试工具 Prompt Playground。

这个工具的初衷是为了方便测试,所以没有做太多的功能,只是简单的实现了一个提示词的运行界面,可以方便的调整参数,查看结果。尤其是希望没有开发经验的人也可以方便的使用。

但是由于对客户端开发不熟悉,所以在实现的过程中遇到了很多问题,也花了很多时间去解决,所以把这个过程记录下来,希望能够对其他人有所帮助。

Prompt Playground 的更新

样式的更新

这个月更多的更新还是样式相关的。

刚开始的时候,只是为了实现基础的功能,所以整体使用的大部分还是Avalonia原始的组件样式,大部分的功能都需要通过鼠标点击按钮来操作,于是界面上就放置了很明显的按钮。

于是最初的样式是这样的:
0.1.0 主界面

同时为了简单的个性化,又在所有能够展示文字的地方都加上了一些emoji,这样看起来就比较有趣了,但是仍然简陋。

其他的一些地方,就更不用说了,像是配置界面就是最简单的表单样式,没有任何的美化。

0.1.0 配置界面

经过了些许的摸索和学习之后,尝试在项目中引入了Semi.Avalonia,这是一个基于Avalonia的UI组件库,提供了很多现成的组件,可以直接使用。

像是Tab组件的样式就有了很大的改变,于是就有了第二版的界面。

0.2.0 主界面

虽然还是原有emoji的风格,但是整体的风格上组件可以做的更加精巧。

后面经过探索,引入了 Icons.Avalonia,将emoji替换成了图标,同时也对配置界面进行了一些调整,于是就有了现在的样子。

0.3.0 主界面

配置窗口也做了一些简单的调整。

配置界面的优化

配置模式的优化

0.1.0 版本中,所有的配置项都是配置模型下的一个字段,导致配置的重用和扩展都比较困难。

于是在0.2.0 版本中,将配置项的配置模型改为了一个列表,不同的模型可以指定需要的配置项,由此,可以实现不同模型的配置重用。
例如 Baidu ERNIE 模型和 Baidu ERNIE Turbo其实使用的相同的配置参数,那么在配置的时候,切换模型就不需要重复配置了。
这项优化也应用到了 Embedding的配置上。

结果展示优化

调试词的运行,不仅仅是需要看的生成结果,同时也需要看到生成消耗的Tokens数量,以及生成的时间。

于是在0.2.0 的更新中,就加入了这两个信息的展示。

展示结果的优化

对接向量数据库

Memory 是Semantic Kernel中最重要的一个功能,可以通过 TextMemorySkill,在提示词中加入相关信息,生成更加丰富的提示词。

而向量数据库则是Memory必备的配置,所以在0.3.0 版本中,加入了对向量数据库的支持。

但是由于Memory需要的配置项较多, 目前也没有进行优化,所以在配置的时候,需要手动输入所有的配置项。包括向量数据库的信息,Embedding的信息。
同时在调用的时候,还需要提供 Collection、Limit 和 Relevance 参数。

向量数据库的配置

接下来的更新计划

  1. Core Skills(Plugins)的支持
  2. 优化文件管理
  3. 结果的统计和分析
  4. 更名(Prompt Studio)

参与

该项目目前在Github上开源,使用.NET 7 + AvaloniaUI 进行开发,支持跨平台,欢迎大家参与。

如果有任何问题或者建议,也欢迎提issue或者PR。


知识共享许可协议本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。


🤝WE WANT YOU!

posted @ 2023-08-07 20:28  宵伯特  阅读(114)  评论(2编辑  收藏  举报