首页 > 其他分享 >开源模型应用落地-LangSmith试炼-入门初体验-Prompts(六)

开源模型应用落地-LangSmith试炼-入门初体验-Prompts(六)

时间:2024-06-09 19:30:47浏览次数:11  
标签:试炼 初体验 prompt LangChain Prompts API run Prompt id

一、前言

    在许多应用程序中,特别是在大型语言模型(LLM)应用程序中,收集用户反馈以了解应用程序在实际场景中的表现是非常重要的。

    本章是LangSmith系列最后一篇文章,通过学习Prompts功能,用户可以上传、浏览、检索和管理提示(Prompt)。这个Prompts功能简化了提示(Prompt)的管理,使开发过程更加流畅。


二、术语

2.1.Prompts

    具体功能包括:

  1. 上传和分享Prompt:将自己创建的Prompt上传到平台上,与其他用户分享和交流;
  2. 浏览和检索Prompt:浏览其他用户上传的Prompt,通过筛选和搜索功能找到感兴趣的Prompt;
  3. 管理Prompt:对自己上传的Prompt进行管理,如编辑、删除等;
  4. 快速试验:在Prompt Playground中尝试不同的Prompt、模型和参数,快速验证和优化自己的应用。

2.2.LangChain

    是一个全方位的、基于大语言模型这种预测能力的应用开发工具。LangChain的预构建链功能,就像乐高积木一样,无论你是新手还是经验丰富的开发者,都可以选择适合自己的部分快速构建项目。对于希望进行更深入工作的开发者,LangChain提供的模块化组件则允许你根据自己的需求定制和创建应用中的功能链条。

    LangChain本质上就是对各种大模型提供的API的套壳,是为了方便我们使用这些 API,搭建起来的一些框架、模块和接口。

   LangChain的主要特性:
        1.可以连接多种数据源,比如网页链接、本地PDF文件、向量数据库等
        2.允许语言模型与其环境交互
        3.封装了Model I/O(输入/输出)、Retrieval(检索器)、Memory(记忆)、Agents(决策和调度)等核心组件
        4.可以使用链的方式组装这些组件,以便最好地完成特定用例。
        5.围绕以上设计原则,LangChain解决了现在开发人工智能应用的一些切实痛点。

2.3.LangSmith

    是一个用于构建生产级 LLM 应用程序的平台,它提供了调试、测试、评估和监控基于任何 LLM 框架构建的链和智能代理的功能,并能与 LangChain 无缝集成。其主要作用包括:

  • 调试与测试:通过记录langchain构建的大模型应用的中间过程,开发者可以更好地调整提示词等中间过程,优化模型响应。
  • 评估应用效果:langsmith可以量化评估基于大模型的系统的效果,帮助开发者发现潜在问题并进行优化。
  • 监控应用性能:实时监控应用程序的运行情况,及时发现异常和错误,确保其稳定性和可靠性。
  • 数据管理与分析:对大语言模型此次的运行的输入与输出进行存储和分析,以便开发者更好地理解模型行为和优化应用。
  • 团队协作:支持团队成员之间的协作,方便共享和讨论提示模板等。
  • 可扩展性与维护性:设计时考虑了应用程序的可扩展性和长期维护,允许开发者构建可成长的系统。

2.4.LangChain和LangSmith的关系

        LangSmith是LangChain的一个子产品,是一个大模型应用开发平台。它提供了从原型到生产的全流程工具和服务,帮助开发者构建、测试、评估和监控基于LangChain或其他 LLM 框架的应用程序。

        LangSmith与LangChain 的关系可以概括为:LangChain是一个开源集成开发框架,而 LangSmith是基于LangChain 构建的一个用于大模型应用开发的平台。


三、前提条件

3.1.安装虚拟环境

conda create --name langsmith python=3.10
conda activate langsmith
pip install -U langsmith -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install langchainhub -i https://pypi.tuna.tsinghua.edu.cn/simple

3.2.创建API key

操作入口:LangSmithhttps://smith.langchain.com/settings未登录的需要先进行登录:

​​

登录成功:

​​

点击Settings:

​​

点击Create API Key:

​​

​​

记录API Key:

​​

3.3.设置环境变量

windows:

​​

linux:

export LANGCHAIN_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ps:

1.需要替换3.2创建的API Key


四、技术实现

4.1.创建私有Prompt

4.1.1.导航至创建Prompt位置

4.1.2.创建新的私有Prompt

私有类型的Prompt提示仅对自己的工作区可见

4.1.3.编写Prompt明细

选择prompt类型

填写prompt模版

提交

4.2.创建公共Prompt

4.2.1.导航至创建Prompt位置

4.2.2.创建新的公共Prompt

公共类型的Prompt对LangChain Hub中的任何人可见

首次创建公共Prompt时,需要设置 LangChain Hub handle。

4.2.3.编写Prompt明细

选择prompt类型

填写prompt模版

提交

4.2.在本地使用Prompt

点击指定prompt数据

查询代码示例

LangSmith集成示例一

# -*-  coding = utf-8 -*-
import os
from langchain import hub
os.environ['LANGCHAIN_API_KEY'] = 'lsv2_pt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

if __name__ == '__main__':

    prompt = hub.pull("custom_prompt")
    print(prompt)

调用结果:

LangSmith集成示例二

# -*-  coding = utf-8 -*-
import os
from langsmith import traceable
from langsmith.run_helpers import get_current_run_tree
from langsmith import run_trees
from openai import Client
from langchain import hub

os.environ["OPENAI_API_KEY"] = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
os.environ['LANGCHAIN_TRACING_V2'] = 'true'
os.environ['LANGCHAIN_API_KEY'] = 'lsv2_pt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

key = 'test_key'

def feedback(run_id,key,value):
    from langsmith import Client

    client = Client()

    client.create_feedback(
        run_id,
        key=key,
        value=value,
        score=1.0,
        comment="comment",
    )

if __name__ == '__main__':

    @traceable
    def format_prompt(system_prompt,prompt,value="format_prompt"):
        run = get_current_run_tree()
        run_id = run.id
        feedback(run_id, key,value)

        return [
            {
                "role": "system",
                "content": system_prompt,
            },
            {
                "role": "user",
                "content": prompt
            }
        ]


    @traceable(run_type="llm")
    def invoke_llm(messages,value="invoke_llm"):
        run = get_current_run_tree()
        run_id = run.id
        feedback(run_id, key,value)

        openai = Client()
        return openai.chat.completions.create(
            messages=messages, model="gpt-3.5-turbo", temperature=0
        )


    @traceable
    def parse_output(response,value="parse_output"):
        run = get_current_run_tree()
        run_id = run.id
        feedback(run_id, key,value)

        return response.choices[0].message.content


    @traceable
    def run_pipeline(system_prompt,prompt,value='run_pipeline'):
        run:run_trees.RunTree = get_current_run_tree()
        run_id = run.id
        feedback(run_id, key,value)
        # 格式化prompt
        messages = format_prompt(system_prompt,prompt)
        # 调用GPT进行推理
        response = invoke_llm(messages)
        # 解析输出
        result = parse_output(response)
        return result

    prompt_template = hub.pull("custom_prompt")
    system_prompt_obj = prompt_template.messages[0]
    system_prompt = system_prompt_obj.prompt.template

    human_prompt_obj = prompt_template.messages[1]
    human_prompt_template = human_prompt_obj.prompt.template
    human_prompt = human_prompt_template.replace('{region}','北京')

    print(system_prompt)
    print(human_prompt)
    result = run_pipeline(system_prompt, human_prompt)
    print(result)

调用结果:

PS:切记要安装langchainhub库

4.3.查询自有工作空间的Prompt

4.3.1.查询公共的Prompt

4.3.2.查询私有的Prompt

4.3.2.根据条件查询Prompt

4.4.查询公共仓库的Prompt

跳转至LangChain Hub,根据右侧条件进行筛选

例如:选择Language:Chinese,Top Download

黏贴下面代码即可拉取仓库中的Prompt到本地

4.5.运行Prompt

点击进入明细 >> 点击Try It按钮

输入变量 >>点击Start按钮

PS:需要先填Open AI Key


五、附带说明

5.1.问题一:提示名称必须以字母开头,并且只能包含小写字母、数字、连字符或下划线

5.2.问题二:Error: OpenAI or Azure OpenAI API key or Token Provider not found

在Prompt Playground中试验需要填入各自的OPENAI_API_KEY

5.3.问题三:ImportError: Could not import langchainhub, please install with `pip install langchainhub`.

需要安装langchainhub库

pip install langchainhub -i https://pypi.tuna.tsinghua.edu.cn/simple

标签:试炼,初体验,prompt,LangChain,Prompts,API,run,Prompt,id
From: https://blog.csdn.net/qq839019311/article/details/139390235

相关文章

  • Stable diffusion prompts 使用语法、参数讲解、插件安装教程
    Stablediffusionprompts使用语法、参数讲解、插件安装教程本文基于StablediffusionWebUI进行讲解(安装在AutoDL上,安装在本地电脑上的也同样适用本教程)。初始界面:文件目录结构:上图红框中的4个文件夹是我们常用到的,embeddings放置训练的embedding模型,它可......
  • 一款WPF的精简版MVVM框架——stylet框架的初体验(包括MVVM绑定、依赖注入等操作)
    今天偶然知道一款叫做stylet的MVVM框架,挺小巧的,特别是它的命令触发方式,简单粗暴,让人感觉很巴适,现在我做一个简单的demo来顺便来分享给大家。本地创建一个WPF项目,此处我使用.NET8来创建。然后引用stylet最新的nuget包。 然后删掉App.xaml里面自带的启动项删掉以后: styl......
  • 长亭雷池WAF动态防护初体验
    去年文章中有写道长亭雷池的安装方法这里就不说,感兴趣的话可以去看看腾讯云部署雷池Web应用防火墙安装及使用体验,今天刚好看到雷池更新了动态防护这个功能挺震撼的,顺手写下初体验:之前写企业模版的时候很讨厌同行我刚写好,隔天同行就把我的界面cv过去了,最气人的是网站权重还比我......
  • 头歌springboot初体验
    您好!看起来您可能在询问关于SpringBoot的入门体验。SpringBoot是一个开源的Java框架,它设计用来简化Spring应用程序的初始搭建和开发过程。以下是一些SpringBoot的基本概念和入门步骤:SpringBoot简介:SpringBoot是Spring框架的一个模块,它提供了快速启动和运行Spring应......
  • Prime1 - 信息收集和分析能力的试炼
    主机发现nmap扫描与分析端口22、80详细扫描;linux、ubuntu、udp扫描端口都是关闭的脚本扫描web渗透打开只有一张图片;源码有图片和一个alt:hnpsecurity不知道有啥用,先记录下来吧继续web渗透思路走吧,目录爆破关于工具有很多,差别不大,主要是会工具的指定参数mandirb......
  • OrangePi AIpro 快速上手初体验——接口、样例和目标检测
    ​一、开发板简介OrangePiAIpro开发板是香橙派联合华为精心打造的高性能AI开发板,其搭载了昇腾AI处理器,可提供8TOPSINT8的计算能力,内存提供了8GB和16GB两种版本。可以实现图像、视频等多种数据分析与推理计算,可广泛用于教育、机器人、无人机等场景。下面让我......
  • Aspire初体验
    微服务新体验之Aspire初体验  合集-微服务(2) 1.微服务新体验之Aspire初体验05-302.Aspire项目发布到win11本地k8s集群05-31收起 安装aspire查看vs版本我这的版本是17.9.7,不支持aspire,所以需要升级更新VS点击帮助->检查更新点击更新静等安装升级......
  • 香橙派 AIpro初体验
     1.香橙派OrangePi_AIpro开发板简介可以把它理解为一台卡片电脑,类似于树莓派,有操作系统。从名字可以看出来,它具备了人工智能、深度学习开发相关的特性。官方对它的描述如下:OrangePiAIPro开发板是香橙派联合华为精心打造的高性能AI开发板,其搭载了昇腾AI处理器,可......
  • 香橙派Kunpeng Pro初体验
    引子非常偶然的机会收到了CSDN发送过来的手机短信,邀请参与香橙派开发板评测活动。一开始没注意到,以为是广告。后来直到香橙派的工作人员微信加群之后,才确认活动真实性。看到微信群里来自各地的开发者,大家的评测积极性也很高。本人之前有过树莓派的开发经验,在收到香橙派开发板之......
  • 微服务新体验之Aspire初体验
    安装aspire查看vs版本我这的版本是17.9.7,不支持aspire,所以需要升级更新VS点击帮助->检查更新点击更新静等安装升级创建aspire项目项目创建成功,如下图运行Aspire项目在AspireApp1.AppHost的launchSettings.json文件中加"ASPIRE_ALLOW_UNSECURED_TRANSPORT":"tr......