mirror of
https://github.com/BoPeng/ai-marketplace-monitor.git
synced 2025-12-23 22:28:18 -05:00
66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
import pytest
|
|
|
|
from ai_marketplace_monitor.ai import OllamaBackend, OllamaConfig
|
|
from ai_marketplace_monitor.facebook import FacebookItemConfig, FacebookMarketplaceConfig
|
|
from ai_marketplace_monitor.listing import Listing
|
|
|
|
|
|
@pytest.mark.skipif(True, reason="Condition met, skipping this test")
|
|
def test_ai(
|
|
ollama_config: OllamaConfig,
|
|
item_config: FacebookItemConfig,
|
|
marketplace_config: FacebookMarketplaceConfig,
|
|
listing: Listing,
|
|
) -> None:
|
|
ai = OllamaBackend(ollama_config)
|
|
# ai.config = ollama_config
|
|
res = ai.evaluate(listing, item_config, marketplace_config)
|
|
assert res.score >= 1 and res.score <= 5
|
|
|
|
|
|
def test_prompt(
|
|
ollama: OllamaBackend,
|
|
listing: Listing,
|
|
item_config: FacebookItemConfig,
|
|
marketplace_config: FacebookMarketplaceConfig,
|
|
) -> None:
|
|
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
|
|
assert item_config.name in prompt
|
|
assert (item_config.description or "something weird") in prompt
|
|
assert str(item_config.min_price) in prompt
|
|
assert str(item_config.max_price) in prompt
|
|
|
|
assert listing.title in prompt
|
|
assert listing.condition in prompt
|
|
assert listing.price in prompt
|
|
assert listing.post_url in prompt
|
|
|
|
|
|
def test_extra_prompt(
|
|
ollama: OllamaBackend,
|
|
listing: Listing,
|
|
item_config: FacebookItemConfig,
|
|
marketplace_config: FacebookMarketplaceConfig,
|
|
) -> None:
|
|
|
|
marketplace_config.extra_prompt = "This is an extra prompt"
|
|
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
|
|
assert "extra prompt" in prompt
|
|
#
|
|
item_config.extra_prompt = "This overrides marketplace prompt"
|
|
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
|
|
assert "extra prompt" not in prompt
|
|
assert "overrides marketplace prompt" in prompt
|
|
#
|
|
assert "Great deal: Fully matches" in prompt
|
|
item_config.rating_prompt = "something else"
|
|
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
|
|
assert "Great deal: Fully matches" not in prompt
|
|
assert "something else" in prompt
|
|
#
|
|
assert "Evaluate how well this listing" in prompt
|
|
marketplace_config.prompt = "myprompt"
|
|
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
|
|
assert "Evaluate how well this listing" not in prompt
|
|
assert "myprompt" in prompt
|