Der Import von „llama_index.llms.ollama“ konnte nicht aufgelöst werdenPython

Python-Programme
Anonymous
 Der Import von „llama_index.llms.ollama“ konnte nicht aufgelöst werden

Post by Anonymous »

Ich habe die folgenden Importe für eine Python-Datei, die bald ein Multi-LLM-Agent sein soll. Ich wollte llama_index verwenden und habe ein schönes Video von Tech mit Tim gefunden, das alles sehr gut erklärt. Ich habe die virtuelle Umgebung (venv) eingerichtet, aktiviert und alle Anforderungen installiert, einschließlich llama_index und llama_parse. Das ist mein Code, aber ich glaube nicht, dass er notwendig ist:

Code: Select all

from llama_index.llms.ollama import Ollama
from llama_parse import LlamaParse
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, PromptTemplate
from llama_index.core.embeddings import resolve_embed_model
from llama_index.core.tools import QueryEngineTool, ToolMetadata
from llama_index.core.agent import ReActAgent
from pydantic import BaseModel
from llama_index.core.output_parsers import PydanticOutputParser
from llama_index.core.query_pipeline import QueryPipeline
from prompts import context, code_parser_template
from code_reader import code_reader
from dotenv import load_dotenv
import os
import ast

load_dotenv()

llm = Ollama(model="mistral", request_timeout=30.0)

parser = LlamaParse(result_type="markdown")

file_extractor = {".pdf": parser}
documents = SimpleDirectoryReader("./data", file_extractor=file_extractor).load_data()

embed_model = resolve_embed_model("local:BAAI/bge-m3")
vector_index = VectorStoreIndex.from_documents(documents, embed_model=embed_model)
query_engine = vector_index.as_query_engine(llm=llm)

tools = [
QueryEngineTool(
query_engine=query_engine,
metadata=ToolMetadata(
name="api_documentation",
description="this gives documentation about code for an API. Use this for reading docs for the API",
),
),
code_reader,
]

code_llm = Ollama(model="codellama")
agent = ReActAgent.from_tools(tools, llm=code_llm, verbose=True, context=context)

class CodeOutput(BaseModel):
code: str
description: str
filename: str

parser = PydanticOutputParser(CodeOutput)
json_prompt_str = parser.format(code_parser_template)
json_prompt_tmpl = PromptTemplate(json_prompt_str)
output_pipeline = QueryPipeline(chain=[json_prompt_tmpl, llm])

while (prompt := input("Enter a prompt (q to quit): ")) != "q":
retries = 0

while retries < 3:
try:
result = agent.query(prompt)
next_result = output_pipeline.run(response=result)
cleaned_json = ast.literal_eval(str(next_result).replace("assistant:", ""))
break
except Exception as e:
retries += 1
print(f"Error occured, retry #{retries}:", e)

if retries >= 3:
print("Unable to process request, try again...")
continue

print("Code generated")
print(cleaned_json["code"])
print("\n\nDesciption:", cleaned_json["description"])

filename = cleaned_json["filename"]

try:
with open(os.path.join("output", filename), "w") as f:
f.write(cleaned_json["code"])
print("Saved file", filename)
except:
print("Error saving file...")

Für jeden einzelnen llama_index-Import und den llama_parse-Import erhalte ich die Fehlermeldung „Import „xxx“ konnte nicht aufgelöst werden“. Was mache ich falsch?
Meine Python-Version ist Python 3.11.8

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post