如何修改LlamaIndex入门教程以使用Akash Network托管的最新Llama模型?
如何修改LlamaIndex入门教程以使用Akash Network托管的最新Llama模型?
看起来你遇到的问题是LlamaIndex的OpenAI集成和Akash API之间的模型名称不匹配,以及默认模型调用的冲突,我来帮你一步步解决这些问题:
问题1:LlamaIndex不识别Akash的模型名称
你碰到的第一个错误是因为LlamaIndex的openai_modelname_to_contextsize函数只预定义了OpenAI官方的模型映射,不知道Akash托管的Llama模型。解决方法很简单——显式指定模型的上下文窗口大小,跳过LlamaIndex的模型名称检查:
修改你的custom_llm初始化代码,加上context_window参数(比如Llama 3.3 70B的上下文窗口是8192,你可以根据Akash提供的模型参数调整):
from llama_index.llms.openai import OpenAI API_BASE_URL="https://chatapi.akash.network/api/v1" LLM_MODEL="Meta-Llama-3-3-70B-Instruct" # 根据模型实际参数设置上下文窗口,这里以8192为例 CONTEXT_WINDOW = 8192 custom_llm = OpenAI( api_base=API_BASE_URL, model=LLM_MODEL, context_window=CONTEXT_WINDOW )
问题2:默认调用gpt-3.5-turbo被API拒绝
当你去掉as_query_engine的llm参数时,LlamaIndex会自动使用默认的gpt-3.5-turbo模型,而Akash API不允许调用这个模型。所以需要全局设置默认LLM,确保所有模块都使用你的custom_llm:
在代码里添加Settings.llm的配置:
from llama_index.core import Settings # ... 之前的embedding配置 ... # 同时设置全局默认LLM Settings.llm = custom_llm Settings.embed_model = embedding_model # 构建索引时可以不用再传llm参数(当然传了也没问题) index = VectorStoreIndex.from_documents(documents) # 查询引擎也不用额外传llm,会用全局设置的 query_engine = index.as_query_engine() response = query_engine.query("What did the author do growing up?") print(response)
完整修改后的代码
把这些调整整合起来,完整代码应该是这样的:
from llama_index.embeddings.huggingface import HuggingFaceEmbedding from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings from llama_index.llms.openai import OpenAI API_BASE_URL="https://chatapi.akash.network/api/v1" EMBEDDING_MODEL="BAAI/bge-small-en-v1.5" LLM_MODEL="Meta-Llama-3-3-70B-Instruct" CONTEXT_WINDOW = 8192 # 根据Akash模型的实际参数调整 # Load your documents documents = SimpleDirectoryReader("data").load_data() # 初始化自定义LLM,显式指定上下文窗口 custom_llm = OpenAI( api_base=API_BASE_URL, model=LLM_MODEL, context_window=CONTEXT_WINDOW ) # Initialize the HuggingFace embedding model embedding_model = HuggingFaceEmbedding(model_name=EMBEDDING_MODEL) # 设置全局默认的LLM和嵌入模型 Settings.llm = custom_llm Settings.embed_model = embedding_model # Build the index index = VectorStoreIndex.from_documents(documents) # 创建查询引擎并查询 query_engine = index.as_query_engine() response = query_engine.query("What did the author do growing up?") print(response)
关于LlamaAPI类的说明
你尝试的LlamaAPI类是专门针对Llama官方API设计的,确实没有提供修改base URL的选项,所以用它没法连接到Akash的端点,还是用兼容OpenAI格式的OpenAI类更合适。
备注:内容来源于stack exchange,提问作者Tristan
相关产品推荐
相关产品推荐

