如何将自定义OpenAI代理服务接入Llama-Index的Service Context?
解决Llama-Index接入本地OpenAI代理的配置方案
1. 基础环境配置(可选)
通过环境变量让OpenAI SDK和Llama-Index自动识别代理地址:
export OPENAI_API_BASE="http://localhost:你的代理端口/v1" export OPENAI_API_KEY="你的OpenAI密钥"
2. 定义GPT-3.5-Turbo LLM
初始化LLM时直接指定代理地址与模型:
from llama_index.llms.openai import OpenAI llm = OpenAI( model="gpt-3.5-turbo", api_base="http://localhost:你的代理端口/v1", api_key="你的OpenAI密钥" )
3. 定义Ada-02 Embedding模型
同样在初始化Embedding时传入代理配置:
from llama_index.embeddings.openai import OpenAIEmbedding embed_model = OpenAIEmbedding( model="text-embedding-ada-002", api_base="http://localhost:你的代理端口/v1", api_key="你的OpenAI密钥" )
4. 创建并接入Service Context
将自定义LLM和Embedding整合进Service Context:
from llama_index.core import ServiceContext service_context = ServiceContext.from_defaults( llm=llm, embed_model=embed_model )
5. 验证使用
基于配置好的Service Context构建索引或执行查询:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader # 加载本地文档 documents = SimpleDirectoryReader("你的文档目录路径").load_data() # 用自定义上下文构建索引 index = VectorStoreIndex.from_documents(documents, service_context=service_context) # 执行查询 query_engine = index.as_query_engine() response = query_engine.query("你的查询内容") print(response)
注意事项
- 确保SSH隧道持续运行,本地代理端口可正常连通OpenAI服务
- 代理地址必须包含
/v1后缀,否则会导致API请求路径错误 - 若已设置环境变量,代码中可省略
api_base和api_key参数,Llama-Index会自动读取
内容的提问来源于stack exchange,提问作者Qubix
相关产品推荐
相关产品推荐

