首页 > 其他分享 >GLM-3-Turbo 和Prompt

GLM-3-Turbo 和Prompt

时间:2024-04-21 11:22:24浏览次数:29  
标签:Turbo Prompt GLM 小明 示例 content role model id

GLM-3-Turbo 和Prompt

GLM-3-Turbo

SSE调用

接口请求

 

接口请求参数

必填

  • model:string,所要调用的模型编码

  • message:list,调用语言模型时,将当前对话信息列表作为提示输入给模型, 按照 {"role": "user", "content": "你好"} 的json 数组形式进行传参; 可能的消息类型包括 System message、User message、Assistant message 和 Tool message。

message字段说明:

System Message格式

 

User Message格式

 

Assistant Message格式

 

Tool Message格式

 

模型同步调用响应内容

 

内容生成流式响应块内容

 

python调用实例

同步调用

调用后即可一次性获得最终结果

请求示例

 

 from zhipuai import ZhipuAI
 client = ZhipuAI(api_key=" ") #填写自己的APIKEY
 response = client.chat.completions.creat(
  model = "glm-3-turbo",#填写需要调用的模型名称
     messages=[
        {"role":"user","content":"…………"},
        {"role":"assistant","content":"…………"},
        {"role":"user","content":"…………"},
        {"role":"assistant","content":"…………"},
          {"role":"user","content":"…………"}
    ],
 )
 print(response.choices[0].message)
响应示例
 {
   "created": 1703487403,
   "id": "8239375684858666781",
   "model": "glm-3-turbo",
   "request_id": "8239375684858666781",
   "choices": [
      {
           "finish_reason": "stop",
           "index": 0,
           "message": {
               "content": "智绘蓝图,AI驱动 —— 智谱AI,让每一刻创新成为可能。",
               "role": "assistant"
          }
      }
  ],
   "usage": {
       "completion_tokens": 217,
       "prompt_tokens": 31,
       "total_tokens": 248
  }
 }
流式调用

调用后会立即返回一个任务 ID ,然后用任务ID查询调用结果(根据模型和参数的不同,通常需要等待10-30秒才能得到最终结果)

请求示例
 from zhipuai import ZhipuAI
 client = ZhipuAI(api_key=" ")
 response = client.chat.completions.creat(
  model = "glm-3-turbo"
     message = [
      {"role":"system","content":"....."},
      {"role":"user","content":"...."},
    ],
     stream=True,
 )
 for chunk in response:
  print(chunk.choices[0].delta)
响应示例
 data: {"id":"8313807536837492492","created":1706092316,"model":"glm-3-turbo","choices":[{"index":0,"delta":{"role":"assistant","content":"土"}}]}
 data: {"id":"8313807536837492492","created":1706092316,"model":"glm-3-turbo","choices":[{"index":0,"delta":{"role":"assistant","content":"星"}}]}
 ​
 ....
 ​
 data: {"id":"8313807536837492492","created":1706092316,"model":"glm-3-turbo","choices":[{"index":0,"delta":{"role":"assistant","content":","}}]}
 data: {"id":"8313807536837492492","created":1706092316,"model":"glm-3-turbo","choices":[{"index":0,"delta":{"role":"assistant","content":"主要由"}}]}
 data: {"id":"8313807536837492492","created":1706092316,"model":"glm-3-turbo","choices":[{"index":0,"finish_reason":"length","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":60,"completion_tokens":100,"total_tokens":160}}
 data: [DONE]
函数调用
请求示例
 from zhipuai import ZhipuAI
 client = ZhipuAI(api_key=" ")
 tools = [
    {
         "type":"function",
         "function":{
             "name":"query_train_info",
             "description":".....",
             "parameters":{
                 "type":"object",
                 "properties":{
                     "departure":{
                         "type":"string",
                         "description":".",
                    },
                     "destination":{
  "type":"string",
                         "description":".",
                    },
                     "date":{
                         "type":"string",
                         "decription":".",
                    },  
                },
                 "required":["departure","destination","date"],
            },
        }
    }
 ]
 messages = [
    {
         "role":"user",
         "content":"...",
    }
 ]
 reponse = clent.chat.completion.create(
  model="glm-3-turbo",
     messages=messages,
     tools=tools,
     tool_choice="auto",
 )
 print(response.choice[0].message)
响应示例
 {
   "id": "8231168139794583938",
   "model": "glm-3-turbo",
   "request_id": "8231168139794583938",
   "created": 1703490288,
   "choices": [
      {
           "finish_reason": "tool_calls",
           "index": 0,
           "message": {
               "role": "assistant",
               "tool_calls": [
                  {
                       "id": "call_8231168139794583938",
                       "index": 0,
                       "type": "function",
                       "function": {
                           "arguments": '{"date": "2024-01-01","departure": "北京南站","destination": "上海"}',
                           "name": "query_train_info"
                      }
                  }
              ]
          }
      }
  ],
   "usage": {
       "completion_tokens": 31,
       "prompt_tokens": 120,
       "total_tokens": 151
  }
 }
异步调用
接口请求

 

接口请求参数与同步调用相同

接口响应参数

 

请求示例
 from zhipuai import ZhipuAI
 ​
 client = ZhipuAI(api_key="")
 response=
 client.chat.asyncCompletions.create(
     model="glm-3-turbo",  
     messages=[
        {
             "role": "user",
             "content": "..."
        }
    ],
 )
 print(response)
响应示例
 id='123456789' request_id='654321' model='glm-3-turbo' task_status='PROCESSING'
任务结果查询
接口请求

 

请求参数

 

响应参数

 

python调用示例

请求示例

 import time
 from zhipuai import ZhipuAI
 ​
 client = ZhipuAI(api_key="")
 response = client.chat.asyncCompletions.create(
     model="glm-3-turbo",
     messages=[
        {
             "role": "user",
             "content": "请你作为童话故事大王,写一篇短篇童话故事,故事的主题是要永远保持一颗善良的心,要能够激发儿童的学习兴趣和想象力,同时也能够帮助儿童更好地理解和接受故事中所蕴含的道理和价值观。"
        }
    ],
 )
 task_id = response.id
 task_status = ''
 get_cnt = 0
 ​
 while task_status != 'SUCCESS' and task_status != 'FAILED' and get_cnt <= 40:
     result_response = client.chat.asyncCompletions.retrieve_completion_result(id=task_id)
     print(result_response)
    task_status=result_response.task_status
 ​
     time.sleep(2)
     get_cnt += 1
     

响应示例

 {"id":"123456789","request_id":"123123123","model":null,"task_status":"PROCESSING"}
 {"id":"123456789","request_id":"123123123","model":null,"task_status":"PROCESSING"}
 ​
 ... ...
 ​
 {"id":"123456789","request_id":"123123123","model":null,"task_status":"PROCESSING"}
 {
     "id": "123456789",
     "request_id": "123123123",
     "model": "chatglm3_beta",
     "task_status": "SUCCESS",
     "choices": [
        {
             "index": 0,
             "finish_reason": "stop",
             "message": {
                 "content": "从前,有一个美丽的村庄,村子里的孩子们都喜欢一起玩耍、学习和探索。其中,有一个叫小明的小男孩,他有一颗善良的心,总是乐于助人。
 ​
 有一天,小明在森林里捡到了一只小鸟,它的翅膀受伤了,无法飞翔。小明心疼地把小鸟带回家,用自己的温暖和关爱照顾它。在小明的精心照料下,小鸟的翅膀渐渐康复,它开始在小明的房间里飞翔。
 ​
 看到小鸟康复得如此神奇,小明产生了浓厚的兴趣,他想知道更多关于小鸟的知识。于是,他开始阅读关于鸟类的书籍,了解它们的习性和生活习惯。通过学习,小明变得越来越了解小鸟,他和小鸟也建立了深厚的友谊。
 ​
 有一天,小明在森林里散步时,发现了一只小兔子被困在了一个猎人设下的陷阱里。小明毫不犹豫地走过去,帮助小兔子解开了陷阱。小兔子感激地看着小明,告诉他森林里有一个神秘的宝藏,那是一颗能实现愿望的神奇宝石。
 ​
 小明充满好奇心,决定去寻找那颗宝石。他带着小鸟和小兔子一起踏上了探险之旅。在探险过程中,他们遇到了各种困难,但小明始终保持着善良的心,勇敢地面对挑战。他不仅学会了如何与森林里的动物相处,还掌握了许多生存技巧。
 ​
 经过一段时间的努力,小明终于找到了那颗神奇的宝石。宝石散发着光芒,把小明和他的朋友们带到了一个美丽的世界。在那里,他们遇到了一位智慧的老者。老者告诉小明,这颗宝石的力量源于一个人的善良之心。只有拥有善良之心的人,才能激发宝石的力量,实现自己的愿望。
 ​
 小明明白了这个道理,他感激地和老者告别,带着宝石回到了现实世界。他把宝石的力量用在了帮助别人上,让村子变得更加美好。而小明也成为了村子里的榜样,他用自己的行动告诉孩子们,要永远保持一颗善良的心。
 ​
 从此,小明和村民们过上了幸福快乐的生活。而那些听过小明故事的孩子们,也明白了善良之心的重要性。他们纷纷向小明学习,努力成为一个有爱心、有责任感的人。在这个过程中,他们的学习兴趣和想象力也被激发,成长为了一个个优秀的孩子。
 ​
 这个故事告诉我们,要永远保持一颗善良的心,用自己的行动去影响身边的人。只有拥有善良之心的人,才能激发自己的潜能,实现自己的梦想。让我们一起努力,成为那个拥有善良之心的人吧!",
                 "role": "assistant",
                 "tool_calls": null
            }
        }
    ],
     "usage": {
         "prompt_tokens": 52,
         "completion_tokens": 470,
         "total_tokens": 522
    }
 }

语言Prompt

技巧

编写清晰、具体的指令

技巧1:定义System Prompt

用于设定AI助手行为模式的工具,包括角色设定、语言风格、任务模式和针对特定问题的具体行为指导。

image-20240417172213846

技巧2:提供具体的细节要求

在 Prompt 中添加要求模型输出内容的细节和背景信息。

技巧3:让GLM进行角色扮演
技巧4:使用分隔符标示不同的输入部分
技巧5:思维链提示

要求模型分步骤解答问题,还要求其展示其推理过程的每个步骤。通过这种方式,可以减少不准确结果的可能性,并使用户更容易评估模型的响应。

技巧6:少样本学习

可以作为进行少样本学习的示例。这些样本可以用来引导模型模仿特定的行为和语言风格。

技巧7:指定输出长度的示例

策略

1:*提供参考资料

image-20240417172643167

2:将复杂任务分解为简单的子任务
    • 技巧:意图理解和实体提取

要求大模型输出的内容要直接给到后端服务接口使用,所以大模型一定要按照固定格式输出格式,以便于接口解析模型输出内容,防止报错。

    • 技巧:总结上文关键信息

在长对话中,为了确保对话的连贯性和有效性,对之前的交流内容进行精炼和总结,可以保持对话的焦点、减少重复和混乱、加快模型处理速度。

    • 技巧:分段归纳长文档并逐步构建完整摘要

由于模型处理文本的上下文长度有限,它无法一次性总结超出特定长度的文本。例如,在总结一本长书时,我们可以采用分步骤的方法,逐章节进行总结。各章节的摘要可以组合在一起,再进行进一步的概括,形成更为精炼的总摘要。这个过程可以重复进行,直到整本书的内容被完整总结。如果后续章节的理解需要依赖于前面章节的信息,那么在当前部分的总结中附加之前内容的连贯摘要,能够显著提升模型的生成质量。"

3:给于模型思考时间
  • 技巧:在模型给出最终结论之前,先引导它进行自我探索和推理。

  • 技巧:隐藏推理过程,只输出结果

4:使用外部工具增强模型能力

通过让模型访问工具的获取信息来弥补模型的缺陷和拓展功能,如通过 Function Call 访问外部的信息和执行操作,利用 Retreival 工具访问知识库获取文档信息。

    • 技巧:通过 Function Call 访问外部 API

允许模型访问外部信息和执行操作,信息查询

    • 技巧:通过 Retreival 访问智谱AI 开放平台的知识库

通过Retrieval方法访问智谱开放平台的知识库,用户可上传相关的知识到知识库,模型将基于用户的查询,,提取相关的语义切片,提供更加精准详细的信息。

图像Prompt

策略:使用结构化的提示语

  • 主体: 人、动物、建筑、物体等

  • 媒介: 照片、绘画、插图、雕塑、涂鸦等

  • 环境: 竹林、荷塘、沙漠、月球上、水下等

  • 光线: 自然光、体积光、霓虹灯、工作室灯等

  • 颜色: 单色、复色、彩虹色、柔和色等

  • 情绪 : 开心、生气、悲伤、惊讶等

  • 构图/角度: 肖像、特写、侧脸图、航拍图等

标签:Turbo,Prompt,GLM,小明,示例,content,role,model,id
From: https://www.cnblogs.com/liudan050501/p/18148709

相关文章

  • 搭建清华ChatGLM2-6B
    一、环境配置ChatGLM2-6B至少需要13G GPU(虽然官网说12G即可),int8需要8G,int4需要4G。Win10系统,GTX1060显卡6GB(只能用int4模型,亲测开启GLM2时占了5GB以上)1、git2、conda 3、python3.94、pip5、CUDA11.1(GPU相关)6、torch1.10.1 (跟......
  • NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落
    NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(SpidervsBIRD)全面对比优劣分析[Text2SQL、Text2DSL]NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法......
  • NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)
    SQL实践系列(2):更多模型使用以及工业级案例NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(SpidervsBIRD)全面对比优劣分析[Text2SQL、Text2DSL]NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理NL2SQL进阶系列(1):DB-GPT-H......
  • NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧
    NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(SpidervsBIRD)全面对比优劣分析[Text2SQL、Text2DSL]NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理NL2SQL进......
  • KG2Instructions 和 KG2Prompts 将知识图谱转换为自然语言提示
     KG2Prompts是什么?KG2Prompts是一个用于将知识图谱转换为自然语言提示的工具。它使用预训练的语言模型来生成提示,这些提示可以用于各种任务,例如文本生成、问答和摘要。KG2Prompts的工作原理如下:首先,它将知识图谱转换为一个图结构,其中节点代表实体,边代表实体之间的关系。......
  • 数据分享|R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据|附
    全文链接:http://tecdat.cn/?p=22813最近我们被客户要求撰写关于混合效应的研究报告,包括一些图形和统计输出。本教程为读者提供了使用频率学派的广义线性模型(GLM)的基本介绍。具体来说,本教程重点介绍逻辑回归在二元结果和计数/比例结果情况下的使用,以及模型评估的方法本教程使用......
  • Uni-app的Prompt组件实现
    代码实现<!--prompt组件--><template> <view> <viewv-show="show"class="uni-mask":style="{top:offsetTop+'px'}"@touchmove.stop.prevent="maskMoveHandle"></view> <view......
  • MoneyPrinterTurbo-利用AI大模型,一键生成视频
    地址https://github.com/harry0703/MoneyPrinterTurboWindows百度网盘:https://pan.baidu.com/s/1bpGjgQVE5sADZRn3A6F87w?pwd=xt16提取码:xt16下载后,建议先双击执行update.bat更新到最新代码,然后双击start.bat启动Web界面我这里用的源码安装1:创建虚拟环境gitclo......
  • SQL Prompt 10安装与破解方法
    SQLPrompt10安装与破解方法Cooper写文章只是为了日常记录 4人赞同了该文章SQLPrompt10是一款SQLServer数据库开发工具,通过自动完成、代码补全等功能提高开发效率。但是,该软件需要付费购买,对于一些学生和个人开发者来说,价格较为昂贵。本文将......
  • 翻译prompt
    你是一位精通简体中文的专业翻译,曾参与《纽约时报》和《经济学人》中文版的翻译工作,因此对于新闻和时事文章的翻译有深入的理解。我希望你能帮我将以下英文新闻段落翻译成中文,风格与上述杂志的中文版相似。规则:翻译时要准确传达新闻事实和背景。保留特定的英文术语或名字,并在其......