<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://your-docusaurus-site.example.com/blog</id>
    <title>Zauly chen Blog</title>
    <updated>2026-08-16T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://your-docusaurus-site.example.com/blog"/>
    <subtitle>Zauly chen Blog</subtitle>
    <icon>https://your-docusaurus-site.example.com/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[绿盟科技 AI 开发校招面试]]></title>
        <id>https://your-docusaurus-site.example.com/blog/绿盟科技-AI开发校招面试</id>
        <link href="https://your-docusaurus-site.example.com/blog/绿盟科技-AI开发校招面试"/>
        <updated>2026-08-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[分为两场面试, 初面面的是python开发考察的比较简单, 复试主要讲项目和个人使用ai的方式、harness的使用、rag以及agent这些设计方式]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>信息</div><div class="admonitionContent_BuS1"><p>分为两场面试, 初面面的是python开发考察的比较简单, 复试主要讲项目和个人使用ai的方式、harness的使用、rag以及agent这些设计方式
很可惜的是复试之后就没有信息了</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="初试">初试<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#%E5%88%9D%E8%AF%95" class="hash-link" aria-label="初试的直接链接" title="初试的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-问开发过程中主要是使用python开发吗">1. 问开发过程中主要是使用python开发吗?<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#1-%E9%97%AE%E5%BC%80%E5%8F%91%E8%BF%87%E7%A8%8B%E4%B8%AD%E4%B8%BB%E8%A6%81%E6%98%AF%E4%BD%BF%E7%94%A8python%E5%BC%80%E5%8F%91%E5%90%97" class="hash-link" aria-label="1. 问开发过程中主要是使用python开发吗?的直接链接" title="1. 问开发过程中主要是使用python开发吗?的直接链接" translate="no">​</a></h3>
<blockquote>
<p>90%的场景是使用python进行开发, 擅用多线程、异步机制、以及FastAPI构建高性能的API服务。也回答了能使用JAVA的Spring Boot框架做后端开发。</p>
</blockquote>
<ul>
<li class="">面试官的反应貌似对python开发并不在意, 面试官自身的技术栈应该主JAVA的, 可是自己的技能中并没有对应展示。</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-询问了python的一些基础知识-比如什么是装饰器闭包">2. 询问了Python的一些基础知识, 比如什么是装饰器、闭包<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#2-%E8%AF%A2%E9%97%AE%E4%BA%86python%E7%9A%84%E4%B8%80%E4%BA%9B%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86-%E6%AF%94%E5%A6%82%E4%BB%80%E4%B9%88%E6%98%AF%E8%A3%85%E9%A5%B0%E5%99%A8%E9%97%AD%E5%8C%85" class="hash-link" aria-label="2. 询问了Python的一些基础知识, 比如什么是装饰器、闭包的直接链接" title="2. 询问了Python的一些基础知识, 比如什么是装饰器、闭包的直接链接" translate="no">​</a></h3>
<blockquote>
<p>装饰器: 装饰器是一个接受另一个函数作为输入并返回一个新函数的函数。通常依赖闭包实现
闭包: 一函数包装器是一种封装另一个函数并在其执行前后添加额外功能的函数
简单来说, 闭包:一种“函数记住外部变量”的机制, 装饰器:一种“利用闭包来增强函数功能”的写法</p>
</blockquote>
<p>区别</p>
<ul>
<li class="">闭包关注的是“作用域和状态保留”</li>
<li class="">装饰器关注的是“函数行为增强”</li>
<li class="">装饰器通常通过闭包来实现，但闭包本身并不等于装饰器</li>
</ul>
<div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">def</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">outer</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">x</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">def</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">inner</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">print</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">x</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> inner</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">f </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> outer</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">10</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line theme-code-block-highlighted-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># 下面是装饰器</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">def</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">func</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">def</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">wrapper</span><span class="token punctuation" style="color:#393A34">(</span><span class="token operator" style="color:#393A34">*</span><span class="token plain">args</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">**</span><span class="token plain">kwargs</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">print</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"before"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        result </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> func</span><span class="token punctuation" style="color:#393A34">(</span><span class="token operator" style="color:#393A34">*</span><span class="token plain">args</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">**</span><span class="token plain">kwargs</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">print</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"after"</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> result</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> wrapper</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-yield字段是什么意思">3. yield字段是什么意思?<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#3-yield%E5%AD%97%E6%AE%B5%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D" class="hash-link" aria-label="3. yield字段是什么意思?的直接链接" title="3. yield字段是什么意思?的直接链接" translate="no">​</a></h3>
<blockquote>
<p>yield是python中的声明生成器的类型名称, 通过该字段命名的变量或者函数, 会转换成一种惰性的可迭代对象,
初次访问只是创建对象, 后续访问使用内置的next()函数, 迭代生成.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-如何设计提示词的">4. 如何设计提示词的?<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#4-%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E6%8F%90%E7%A4%BA%E8%AF%8D%E7%9A%84" class="hash-link" aria-label="4. 如何设计提示词的?的直接链接" title="4. 如何设计提示词的?的直接链接" translate="no">​</a></h3>
<blockquote>
<p>自己按照需求分析, 构建input, 核心业务流程, 简单的算法示意, 以及最终输出的样式. 先通过ai出第一版的提示词样例, 然后再做修改</p>
</blockquote>
<ul>
<li class="">感觉这个问题面试官针对所有人都会去问, 自己觉得提示词这块设计并不是特别的专业, 不清楚面试官想要引导我以哪种方式回答</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-讲解一下rag的流程-以及自己的项目中是如何选择路线的">5. 讲解一下RAG的流程, 以及自己的项目中是如何选择路线的<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#5-%E8%AE%B2%E8%A7%A3%E4%B8%80%E4%B8%8Brag%E7%9A%84%E6%B5%81%E7%A8%8B-%E4%BB%A5%E5%8F%8A%E8%87%AA%E5%B7%B1%E7%9A%84%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%98%AF%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E8%B7%AF%E7%BA%BF%E7%9A%84" class="hash-link" aria-label="5. 讲解一下RAG的流程, 以及自己的项目中是如何选择路线的的直接链接" title="5. 讲解一下RAG的流程, 以及自己的项目中是如何选择路线的的直接链接" translate="no">​</a></h3>
<blockquote>
<p>我先说明了一下项目背景, 需要的数据来源以及数据格式, 既有来自于互联网的html的数据也有需要解析处理的pdf数据.
不同的数据使用不同的切块策略, html类型的数据按照标签和Parent-Child策略切分, pdf就按照标题格式来切分. 切完之后
数据经过本地部署的BGE-m3模型将分块的内容转换成固定维度大小存入向量数据库中, 此外也做了稀疏向量的处理, 但是判断词在文档的重要性靠的是模型本身去做的.
使用 BGE-m3 为文本中的 token 计算 lexical weight并以 token ID 作为词表空间中的位置，只保存非零权重，最终构成稀疏向量并存入 pgvector。
检索召回的方式, query经过同样的embedding模型, 默认使用pgvector计算余弦相似度. 此外也使用了混合检索, 先dense召回再使用BGE-m3生成parse向量
然后通过RRF按排名融合dense和sparse两路结果. 最后也引入了交叉编码器精排也就是bge-reranker, 对问题和文章块计算相关性, 对召回的候选重新排序, 只保留top-k
此外还设置了阈值过滤针对阈值结果低的返回空列表</p>
</blockquote>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>注意</div><div class="admonitionContent_BuS1"><p>其实在自己的讲解过程中, 流程是出了问题的, 稀疏向量的环节讲错了, 尤其是词表大小这里 误认为是文章块的token的大小. 其实不是, 是模型本身的tokenizer的大小</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-针对自己做的项目是如何做代码审查的-项目成员是如何负责的">6. 针对自己做的项目是如何做代码审查的? 项目成员是如何负责的<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#6-%E9%92%88%E5%AF%B9%E8%87%AA%E5%B7%B1%E5%81%9A%E7%9A%84%E9%A1%B9%E7%9B%AE%E6%98%AF%E5%A6%82%E4%BD%95%E5%81%9A%E4%BB%A3%E7%A0%81%E5%AE%A1%E6%9F%A5%E7%9A%84-%E9%A1%B9%E7%9B%AE%E6%88%90%E5%91%98%E6%98%AF%E5%A6%82%E4%BD%95%E8%B4%9F%E8%B4%A3%E7%9A%84" class="hash-link" aria-label="6. 针对自己做的项目是如何做代码审查的? 项目成员是如何负责的的直接链接" title="6. 针对自己做的项目是如何做代码审查的? 项目成员是如何负责的的直接链接" translate="no">​</a></h3>
<blockquote>
<p>回答的很一般, 主要是靠agent的code review去分析的. 其实我感觉这个回答很烂, 我觉得代码审查本质是" 分析代码、找问题、提升质量"
可能我觉得面试官比较关注工程测试这一块的环节.这方面确实是自己的不足之处, 很多时候都是自己产出代码, 并没有做好测试, 功能性分析</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-有没有做过数据库优化的问题">7. 有没有做过数据库优化的问题<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#7-%E6%9C%89%E6%B2%A1%E6%9C%89%E5%81%9A%E8%BF%87%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BC%98%E5%8C%96%E7%9A%84%E9%97%AE%E9%A2%98" class="hash-link" aria-label="7. 有没有做过数据库优化的问题的直接链接" title="7. 有没有做过数据库优化的问题的直接链接" translate="no">​</a></h3>
<blockquote>
<p>人太老实了, 直接说没有做. 因为本身行业内的数据我们也是设置了关注哪些要点数据的. 然后硬盘也是8G的空间, 就没和面试官说正常的sql优化的方式
提了一嘴pgvector的优化, 主要是正对recall这个环节的参数设置, 这个自己确实没有多少经验, 很多参数指标也没有去做验证, 靠着ai设置的.</p>
</blockquote>
<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>注意</div><div class="admonitionContent_BuS1"><p>需要着重的看一下数据库方面的知识、sql优化、索引优化</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-部署过模型是吧-你们部署模型考虑的点有哪些">8. 部署过模型是吧? 你们部署模型考虑的点有哪些<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#8-%E9%83%A8%E7%BD%B2%E8%BF%87%E6%A8%A1%E5%9E%8B%E6%98%AF%E5%90%A7-%E4%BD%A0%E4%BB%AC%E9%83%A8%E7%BD%B2%E6%A8%A1%E5%9E%8B%E8%80%83%E8%99%91%E7%9A%84%E7%82%B9%E6%9C%89%E5%93%AA%E4%BA%9B" class="hash-link" aria-label="8. 部署过模型是吧? 你们部署模型考虑的点有哪些的直接链接" title="8. 部署过模型是吧? 你们部署模型考虑的点有哪些的直接链接" translate="no">​</a></h3>
<blockquote>
<p>内部部署gemma4模型, 自己在工作汇报过程中也是调研过gemma4、qwen等系列的模型, 本来想大展一下自己的身手的, 结果面试官根本就没问这方面的知识, 有点被戏耍了.
然后就说了下部署的几类模型在各自领域的特点, 以及参数量大小, 可支持文本类型的适配程度, 然后就是量化格式.</p>
</blockquote>
<ul>
<li class="">感觉面试官其实就是想问一下有没有做过这类事情, 回答的质量一般, 就是简单的应用层面, 但是我觉得面试官好像也对这个不是很在意</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="复试">复试<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#%E5%A4%8D%E8%AF%95" class="hash-link" aria-label="复试的直接链接" title="复试的直接链接" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>信息</div><div class="admonitionContent_BuS1"><p>复试问了我40多分钟, 一直挖自己的项目, 分享自己的harness工程经验, 自己如何最大化模型的能力, ai在开发过程中起到了什么作用，
自己日后的打算, 对公司的业务有了解吗等等. 感觉就是纯聊天, 基本山、基本上都回答上来问题了, 感觉还是自己做的领域并不和安全关系性大, 而且自己做的项目大多是企业内部管理类的
貌似对我的项目不感冒</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1">1.<a href="https://your-docusaurus-site.example.com/blog/%E7%BB%BF%E7%9B%9F%E7%A7%91%E6%8A%80-AI%E5%BC%80%E5%8F%91%E6%A0%A1%E6%8B%9B%E9%9D%A2%E8%AF%95#1" class="hash-link" aria-label="1.的直接链接" title="1.的直接链接" translate="no">​</a></h3>]]></content>
        <category label="Interview" term="Interview"/>
    </entry>
</feed>