背景
昨天刷公众号,突然接触到了《第四期书生大模型实战营》,这个不仅免费,教程还非常全面,对于刚入门大模型的小白来讲再合适不过了。我立即报名了,加入了群组并且按照任务要求和教程一步步完成了。以下是我今天的作业情况。
任务列表
- 完成Leetcode 383, 笔记中提交代码与leetcode提交通过截图
- 调用书生浦语API实现将非结构化文本转化成结构化json的例子。
完成情况
作业一
完成一道算法题。题目要求如下 :
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。
解题思路:
- 首先,判断
magazine和ransomNote的长度,若长度小于ransomNote,因为题目要求每个字符只能用1次,则肯定构造不出来,直接返回False; - 遍历
magazine,统计每个字符出现的次数; - 遍历
ransomNote,统计每个字符出现的次数; - 然后遍历
ransomNote,比较每个字符的个数是否大于magazine中对应字符的个数,若大于,则返回False;
class Solution(object):
def canConstruct(self, ransomNote, magazine):
"""
:type ransomNote: str
:type magazine: str
:rtype: bool
"""
if len(magazine) < len(ransomNote):
return False
ransom = self.count_chart(ransomNote)
maga = self.count_chart(magazine)
for key, value in ransom.items():
if key not in maga:
return False
if value > maga[key]:
return False
return True
def count_chart(self, items):
result = {}
for value in list(items):
if value not in result:
result[value] = 0
result[value] = result[value] + 1
return result
leetcode提交通过截图:
作业2
- 作业2提供的例子其中有一个小bug会导致报错修复bug,经过定位发现是因为代码对大模型输出的结果调用了json.loads进行解析,但是输出结果并不是json格式,需要进行提取。
- debug过程截图如下:
4. 修复bug
res_json = json.load(res[res.index('{'): res.index('}') + 1]
修复后输出如下:
感受
通过这次实操,我对vscode debug过程有了更加深刻的理解,包括ssh概念及配置、conda的使用,pip命令等。我希望通过这次训练营能让自己对大模型有更加深刻的理解,也希望大家多多关注,强烈推荐。