openai入门使用
这段时间有空来倒腾下大模型,由于访问openai需要外网,而我本地采用的socket代理形式,一度让我差点放弃,接下来说说怎么解决
- 安装依赖 pysocks,aiosocksy,openai==0.27.8
- 定义使用socks
import socket
import socks
socks.set_default_proxy(socks.SOCKS5, "127.0.0.7", 7891)
socket.socket = socks.socksocket
- 更改openai的源码,将在openai/api_requestor.py 770行aiohttp_session方法
async with aiohttp.ClientSession() as session:
yield session
换成
connector = ProxyConnector()
async with aiohttp.ClientSession(connector=connector, request_class=ProxyClientRequest) as session:
yield session
这样再使用openai就不会有“python Unknown scheme for proxy URL URL(socks:127.0.0.7:7891) ”之类的错误了,目前只在这个版本的openai才能使用哦
整个例子大概如下
import socket
import socks
import openai
from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI
from langchain_core.prompts import PromptTemplate
socks.set_default_proxy(socks.SOCKS5, "127.0.0.7", 7891)
socket.socket = socks.socksocket
openai.api_key = "xxx"
if __name__ == '__main__':
# 初始化 llm 包装器
llm = OpenAI(temperature=0)
chat_model = ChatOpenAI()
# 设置提示模板
prompt = PromptTemplate(
input_variables=["name"],
template="如何学习python?{name}"
)
# 调用
print(llm(prompt.format(name="小明")))
可有如下显示
1. 首先,小明可以从Python的基础语法开始学习,比如变量、数据类型、控制结构、函数等。
2. 其次,小明可以学习Python的高级特性,比如面向对象编程、模块、异常处理、迭代器等。
3. 再次,小明可以学习Python的标准库,比如os、sys、re、datetime等。
4. 最后,小明可以学习Python的第三方
Process finished with exit code 0