InternLM第四期实战-L0-python基础
python基础
教程链接:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/Python
完成Leetcode,提交代码与通过截图
赎金信
def canConstruct( ransomNote: str, magazine: str) -> bool:
mag_list = list(magazine)
for s in ransomNote:
if s in mag_list:
mag_list.remove(s)
else:
return False
return True
Vscode连接InternStudio debug
测试代码为一段调用书生浦语API实现将非结构化文本转化成结构化json的例子,通过debug功能定位到报错原因并做修正。
测试代码
from openai import OpenAI
import json
def 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 = ''
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)
res_json = json.loads(res)
print(res_json)
前往书生浦语获取API KEY。
在终端中临时将token加入变量进行使用,防止将api_key明文写在代码中。
首先运行程序,发现错误在line 33
。
新建launch.json
进行debug,定位具体原因。
将res的值打印出来查看。
res = '```json\n{\n "model_name": "书生浦语InternLM2.5",\n "developer": "上海人工智能实验室",\n "parameter_versions": ["1.8B", "7B", "20B"],\n "context_length": "1M"\n}\n```'
错误原因在res不符合json格式导致调用json.load时报错。
修改完成后的代码如下:
点击查看代码
def 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 = os.getenv('api_key')
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)
res = res.lstrip('```').rstrip('```')
json_str = res[res.find('{') : res.rfind('}')+1]
json_str = json.dumps(json_str)
res_json = json.loads(json_str, strict=False)
print(res_json)
打印结果: