Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix tool parsing for ollama #1597

Merged
merged 4 commits into from
Dec 18, 2024
Merged

Fix tool parsing for ollama #1597

merged 4 commits into from
Dec 18, 2024

Conversation

dirkbrnd
Copy link
Contributor

@dirkbrnd dirkbrnd commented Dec 18, 2024

Description

Ollama requires a specific formatting for JSONschema tools where parameter types can only be a string, never a list of strings (which is actually valid JSONschema). To compensate for this we ensure optional parameters where the type is ['string', 'null'] is transformed to just 'string' to be compatible.
This should not have impact, because we provide a list of "required" parameters with function definitions.

Fixes #1584

Type of change

Please check the options that are relevant:

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Model update
  • Infrastructure change

Checklist

  • My code follows Phidata's style guidelines and best practices
  • I have performed a self-review of my code
  • I have added docstrings and comments for complex logic
  • My changes generate no new warnings or errors
  • I have added cookbook examples for my new addition (if needed)
  • I have updated requirements.txt/pyproject.toml (if needed)
  • I have verified my changes in a clean environment

@@ -18,3 +19,13 @@

# Print the response in the terminal
agent.print_response("What is the stock price of NVDA and TSLA")


Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another example with a more complex tool

@manthanguptaa
Copy link
Contributor

Also need to run format and validation script

Comment on lines 24 to 31

agent = Agent(
model=Ollama(id="llama3.1:8b"),
tools=[Crawl4aiTools(max_length=1000)],
show_tool_calls=True
)
agent.print_response("Summarize me the key points in bullet points of this: https://blog.google/products/gemini/google-gemini-deep-research/",
stream=True)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's put this in agent_stream.py file

@dirkbrnd dirkbrnd merged commit 96ecee2 into main Dec 18, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tool Crawl4AI has error with Ollama
2 participants