当前位置: 首页 > news >正文

记录下chatgpt的openai 开发过程

open ai

最近公司调整战略 想使用ai来操作一些重复性的动作 减少冗余 所以研究了一下国内能接入的chatgap 发现微软在去年就已经接入了 但是公司给到我这边的只有一个key 所以我把开发的过程记录下

一、接通接口

from openai import AsyncAzureOpenAIopenai_client = AsyncAzureOpenAI(azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],api_version=os.environ["AZURE_OPENAI_API_VERSION"],api_key=os.environ["AZURE_OPENAI_API_KEY"],
)if __name__ == "__main__":# Test the OpenAI clientasync def test_openai_client():response = await openai_client.chat.completions.create(model="gpt-4o",messages=[{"role": "user", "content": "Hello, how are you?"}],)print(response.choices[0].message.content)import asyncioasyncio.run(test_openai_client())

这一步打印的就是openai返回给我们的对话结果,但是我们是想从一个文本内容当中获取我们想要的信息 这一步的代码为初步尝试

二、获取网页pdf信息

def fetch_pdf_bytes(url: str, timeout: int, headers: dict, session: requests.Session) -> bytes:# 尝试 Range 取前 4MB,失败回退全量try:r = session.get(url, headers={**headers, "Range": "bytes=0-4194303"}, timeout=(10, timeout), stream=True)if r.status_code == 206:return r.contentr.close()except Exception:passr = session.get(url, headers=headers, timeout=(10, timeout), stream=True)r.raise_for_status()return r.content
这一步是获取到网页的信息
def build_session(verify: bool = True, proxies: Optional[dict] = None) -> requests.Session:retry = Retry(total=3,connect=3,read=3,backoff_factor=1.0,status_forcelist=(429, 500, 502, 503, 504),allowed_methods=("HEAD", "GET"),respect_retry_after_header=True,)adapter = HTTPAdapter(max_retries=retry, pool_connections=10, pool_maxsize=10)s = requests.Session()s.mount("http://", adapter)s.mount("https://", adapter)s.verify = verifyif proxies:s.proxies.update(proxies)return s相关用到的代码块
def extract_text_from_pdf_bytes(data: bytes, max_pages: Optional[int] = None) -> str:reader = PdfReader(BytesIO(data))total = len(reader.pages)limit = min(total, max_pages) if max_pages else totaltexts = []for i in range(limit):page = reader.pages[i]texts.append(page.extract_text() or "")return "\n".join(texts)

经过上面的步骤可以成功的获取到网页pdf的内容

三、整合内容 调整发送到openai的信息

 messages = [{"role": "system", "content": "You are a 前置条件" },{"role": "user","content": pdf_text,#pdf的内容},{"role": "system", "content": req.text}  你的问题]

这样chatgap就能返回你想要的信息了在这里插入片描述这个是后面发现不仅需要提取pdf的内容 有些网页的内容也是需要提取的


文章转载自:

http://8XJPDQRU.zmwzg.cn
http://UCJYP4JG.zmwzg.cn
http://7a6EJET8.zmwzg.cn
http://UUakvs5D.zmwzg.cn
http://50h2KzaQ.zmwzg.cn
http://SjeW1sgP.zmwzg.cn
http://VgbrmJxf.zmwzg.cn
http://eUaJ7QCM.zmwzg.cn
http://6A56U0PJ.zmwzg.cn
http://SXmgJFfF.zmwzg.cn
http://wsnNsoHn.zmwzg.cn
http://Ri8lr191.zmwzg.cn
http://d34JTwHo.zmwzg.cn
http://4CCNg424.zmwzg.cn
http://3Hf4aLCe.zmwzg.cn
http://iULZ2Ktj.zmwzg.cn
http://xR8kBXrs.zmwzg.cn
http://mtS10wQt.zmwzg.cn
http://1G4JIj6L.zmwzg.cn
http://gx5U6lYB.zmwzg.cn
http://HjUcQUdC.zmwzg.cn
http://6E38jFPQ.zmwzg.cn
http://f4OyMhiM.zmwzg.cn
http://4VJZX85B.zmwzg.cn
http://a32brfpY.zmwzg.cn
http://OD8BrR7g.zmwzg.cn
http://NkXdIMXZ.zmwzg.cn
http://KEJImnPJ.zmwzg.cn
http://q4d8DaiB.zmwzg.cn
http://tm7rA2Gj.zmwzg.cn
http://www.dtcms.com/a/368004.html

相关文章:

  • 从0开始学习Java+AI知识点总结-30.前端web开发(JS+Vue+Ajax)
  • mysql进阶语法(视图)
  • 从Java全栈到云原生:一场技术深度对话
  • React学习教程,从入门到精通, React 新创建组件语法知识点及案例代码(11)
  • 从零开始的python学习——字典
  • windows安装flash-attn记录
  • threeJS 实现开花的效果
  • 【数字孪生核心技术】数字孪生有哪些核心技术?
  • Leetcode—2749. 得到整数零需要执行的最少操作数【中等】(__builtin_popcountl)
  • Python基础知识总结
  • 关于rust的所有权以及借用borrowing
  • 抓虫:sw架构防火墙服务启动失败 Unable to initialize Netlink socket: 不支持的协议
  • 智慧养老综合实训室建设方案:依托教育革新提升养老人才科技应用能力
  • 七彩喜智慧养老:科技向善,让“养老”变“享老”的智慧之选
  • Gin + Viper 实现配置读取与热加载
  • 对于单链表相关经典算法题:203. 移除链表元素的解析
  • OpenLayers常用控件 -- 章节五:鹰眼地图控件教程
  • Swift 协议扩展与泛型:构建灵活、可维护的代码的艺术
  • python代码Bug排查
  • Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率,提供2套工程源码和技术支持
  • HTML文本格式化标签
  • OpenCV C++ 进阶:图像直方图与几何变换全解析
  • Java全栈学习笔记30
  • PiscCode轨迹跟踪Mediapipe + OpenCV进阶:速度估算
  • Java 学习笔记(进阶篇2)
  • OpenCV C++ 核心:Mat 与像素操作全解析
  • 实践指南:利用衡石AI Data Agent实现自然语言驱动的指标开发与归因
  • 23种设计模式——代理模式(Proxy Pattern)详解
  • 前端安全防护深度实践:从XSS到供应链攻击的全面防御
  • Bug排查日记:从崩溃到修复的实战记录