记录下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的内容 有些网页的内容也是需要提取的

相关推荐
兜客互动13 小时前
2026年AI关键词拓展挖掘软件,高效助力内容创作精准获流
人工智能·python
weixin_5386019713 小时前
智能体测开Day30pytest测试框架
python
MC皮蛋侠客14 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
邪神与厨二病14 小时前
牛客周赛 Round 153
python·算法
yaoxin52112314 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
groundhappy14 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
培之15 小时前
RTX 5090 安装 pytorch3d
人工智能·pytorch·python
Metaphor69215 小时前
使用 Python 在 PowerPoint 中创建折线图和条形图
python·信息可视化·powerpoint·图表
m沐沐16 小时前
【深度学习】卷积神经网络 数据增强、保存最优模型实现,详细解读
人工智能·python·深度学习·机器学习·cnn·数据增强
天青色等烟雨..16 小时前
全流程ArcGISPro空间分析、三维建模、可视化及Python融合应用技术
开发语言·python