记录下chatgpt的openai 开发过程

open ai

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

一、接通接口

复制代码
from openai import AsyncAzureOpenAI

openai_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 client
    async 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 asyncio

    asyncio.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.content
        r.close()
    except Exception:
        pass

    r = 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 = verify
    if 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 total
    texts = []
    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的内容 有些网页的内容也是需要提取的

相关推荐
Pocker_Spades_A1 分钟前
Python快速入门专业版(五十七)——POST请求与模拟登录:从表单分析到实战(以测试网站为例)
开发语言·python
Highcharts.js4 分钟前
企业级数据可视化|BI 仪表板数据中台工业监控平台的选择分析
人工智能·python·信息可视化·数据挖掘·数据分析·highcharts
橙露9 分钟前
Seaborn 高级可视化:统计图表制作与报告导出
python
2601_9544345511 分钟前
2026年专业深度测评:入门电钢琴品牌排名前五权威发布
大数据·人工智能·python
道清茗15 分钟前
【RH294知识点汇总】第 3 章 《 管理变量和事实 》1
开发语言·python
shy^-^cky18 分钟前
Python OpenCV 边缘检测效果对比
python·opencv·计算机视觉·边缘检测·sobel·canny·roberts
老歌老听老掉牙22 分钟前
从芯厚误差到几何约束:一个核心误差函数的深度重构与解析
python
阿Y加油吧24 分钟前
栈的经典应用:从「有效括号」到「寻找两个正序数组的中位数」深度解析
开发语言·python·算法
独隅25 分钟前
PyTorch 文本生成完整代码模板与深度解析
人工智能·pytorch·python
阿_旭29 分钟前
基于YOLO26深度学习的骑行安全检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·骑行安全检测