书生大模型实战营闯关 第二关:Python 基础知识

科技   2024-10-30 13:21   北京  

这个实战营是我自己参加,觉得内容非常不错的,因为开源免费,内容也是有一定难度的,有兴趣的一起学习。

实战营第二关,主要是学习下python的基础知识。

任务要求如下:

1.任务一:python编程

Leetcode 383,这个题目的具体内容是这样的:

我得靠大模型帮助才行。。。    

2.任务二:Vscode连接InternStudio debug

调用书生浦语API实现将非结构化文本转化成结构化json的例子

首先获取API Tokens

训练营给了一段代码,通过debug发现,响应的内容前后有多余的标记和换行符,json.loads() 无法正确解析。响应是用代码块格式包裹的,不是有效的 JSON 格式,需要去掉这些额外的标记。下面代码OK了

from openai import OpenAIimport jsondef internlm_gen(prompt,client):    '''    LLM生成函数    Param prompt: prompt string    Param client: OpenAI client     '''    response = client.chat.completions.create(        model="internlm2.5-latest",        messages=[            {"role": "user", "content": prompt},      ],        stream=False    )    return response.choices[0].message.content
api_key ='ey******'client = OpenAI(base_url="https://internlm-chat.intern-ai.org.cn/puyu/api/v1/",api_key=api_key)
content = """书生浦语InternLM2.5是上海人工智能实验室于2024年7月推出的新一代大语言模型,提供1.8B、7B和20B三种参数版本,以适应不同需求。该模型在复杂场景下的推理能力得到全面增强,支持1M超长上下文,能自主进行互联网搜索并整合信息。"""prompt = f"""请帮我从以下``内的这段模型介绍文字中提取关于该模型的信息,要求包含模型名字、开发机构、提供参数版本、上下文长度四个内容,以json格式返回。`{content}`"""res = internlm_gen(prompt,client)# 打印响应内容以供调试print("Raw Response:", repr(res))# 检查响应是否为空if not res: print("Response is empty")else: # 去除多余的空格和换行符 res = res.strip() # 去掉代码块标记 if res.startswith("```json") and res.endswith("```"): res = res[8:-3].strip() # 去掉开头的 ```json 和结尾的 ``` # 修正 JSON 格式,确保参数版本用双引号包围 res = res.replace("1.8B", "\"1.8B\"").replace("7B", "\"7B\"").replace("20B", "\"20B\"") print("Processed Response:", repr(res)) try: res_json = json.loads(res) print("Parsed JSON:", res_json) except json.JSONDecodeError as e: print("JSON decoding error:", e)

输出结果是这样的

      就用简单的API调用,我们就能抽取出文本中的关键信息了 !

扫二维码报名一起学吧    

网安杂谈
关注电子数据取证与网络犯罪调查
 最新文章