UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

171 lines (151 loc) โ€ข 5.9 kB
description: Test emoji selection for different conversation topics and contexts providers: - openai:chat:gpt-5-mini - openai:chat:claude-3-5-haiku-latest - openai:chat:gemini-flash-latest - openai:chat:deepseek-chat prompts: - file://promptfoo/emoji-picker/prompt.ts tests: - vars: content: "I just got a promotion at work! I'm so excited!" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select a positive, celebratory emoji appropriate for work success (e.g., ๐ŸŽ‰, ๐ŸŽŠ, โญ, ๐Ÿ’ผ, ๐Ÿš€)" - type: not-contains value: "explanation" - vars: content: "My dog passed away yesterday. I'm really sad." assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select a sympathetic, sad emoji appropriate for loss and grief (e.g., ๐Ÿ˜ข, ๐Ÿ˜ญ, ๐Ÿ’”, ๐Ÿ˜”)" - type: not-contains value: "explanation" - vars: content: "Can you help me with this math problem?" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to learning, thinking, or mathematics (e.g., ๐Ÿค”, ๐Ÿ“š, โœ๏ธ, ๐Ÿงฎ, ๐Ÿ”ข)" - type: not-contains value: "explanation" - vars: content: "I'm going on vacation to Hawaii next week!" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to vacation, travel, or tropical themes (e.g., ๐ŸŒบ, ๐Ÿ–๏ธ, โœˆ๏ธ, ๐ŸŒด, โ˜€๏ธ)" - type: not-contains value: "explanation" - vars: content: "I'm learning to cook Italian food" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to cooking or Italian food (e.g., ๐Ÿ, ๐Ÿ•, ๐Ÿ‘จโ€๐Ÿณ, ๐Ÿฝ๏ธ)" - type: not-contains value: "explanation" - vars: content: "Technical documentation about API endpoints" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to technology, development, or documentation (e.g., ๐Ÿ’ป, ๐Ÿ“–, โš™๏ธ, ๐Ÿ”ง, ๐Ÿ“)" - type: not-contains value: "explanation" # Chinese language tests - vars: content: "ๆˆ‘ๅˆšๅˆšๅ‡่Œไบ†๏ผๅคชๆฟ€ๅŠจไบ†๏ผ" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select a positive, celebratory emoji appropriate for work success (e.g., ๐ŸŽ‰, ๐ŸŽŠ, โญ, ๐Ÿ’ผ, ๐Ÿš€)" - type: not-contains value: "explanation" - vars: content: "ๆˆ‘็š„็Œซๅ’ชๆ˜จๅคฉๅŽปไธ–ไบ†๏ผŒๆˆ‘ๅพˆ้šพ่ฟ‡" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select a sympathetic, sad emoji appropriate for loss and grief (e.g., ๐Ÿ˜ข, ๐Ÿ˜ญ, ๐Ÿ’”, ๐Ÿ˜”)" - type: not-contains value: "explanation" - vars: content: "ๆˆ‘ๆญฃๅœจๅญฆไน ๅšๆ—ฅๆœฌๆ–™็†" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to cooking or Japanese food (e.g., ๐Ÿฑ, ๐Ÿฃ, ๐Ÿœ, ๐Ÿ‘จโ€๐Ÿณ)" - type: not-contains value: "explanation" # Spanish language tests - vars: content: "ยกMe voy de vacaciones a la playa la prรณxima semana!" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to vacation, beach, or tropical themes (e.g., ๐Ÿ–๏ธ, โ˜€๏ธ, ๐ŸŒŠ, ๐Ÿ๏ธ)" - type: not-contains value: "explanation" - vars: content: "Estoy estudiando para mi examen de matemรกticas" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to studying, learning, or mathematics (e.g., ๐Ÿ“š, ๐Ÿค“, ๐Ÿงฎ, โœ๏ธ, ๐Ÿ“Š, ๐Ÿ“, ๐Ÿ“)" - type: not-contains value: "explanation" # French language tests - vars: content: "Je viens de terminer mon marathon! Je suis รฉpuisรฉ mais heureux" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to running, sports, or achievement (e.g., ๐Ÿƒ, ๐Ÿ…, ๐Ÿ’ช, ๐ŸŽฏ)" - type: not-contains value: "explanation" - vars: content: "J'apprends ร  jouer de la guitare" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to music or guitar (e.g., ๐ŸŽธ, ๐ŸŽต, ๐ŸŽถ, ๐ŸŽผ)" - type: not-contains value: "explanation" # Japanese language tests - vars: content: "ๆ–ฐใ—ใ„ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใŒๅง‹ใพใ‚Šใพใ—ใŸ๏ผ้ ‘ๅผตใ‚Šใพใ™" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to new beginning, work, or motivation (e.g., ๐Ÿš€, ๐Ÿ’ผ, ๐Ÿ’ช, โœจ)" - type: not-contains value: "explanation" - vars: content: "ๆกœใŒๅ’ฒใ„ใฆๆœฌๅฝ“ใซ็ถบ้บ—ใงใ™" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to cherry blossoms, flowers, or beauty (e.g., ๐ŸŒธ, ๐ŸŒบ, ๐ŸŒผ, ๐ŸŒท)" - type: not-contains value: "explanation" # German language tests - vars: content: "Ich habe gerade ein neues Auto gekauft!" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to cars or excitement (e.g., ๐Ÿš—, ๐ŸŽ‰, ๐Ÿš™)" - type: not-contains value: "explanation" # Russian language tests - vars: content: "ะฏ ะปัŽะฑะปัŽ ั‡ะธั‚ะฐั‚ัŒ ะบะฝะธะณะธ ะฟะพ ะฒะตั‡ะตั€ะฐะผ" assert: - type: llm-rubric provider: openai:gpt-5-mini value: "Should select an emoji related to reading or books (e.g., ๐Ÿ“š, ๐Ÿ“–, ๐Ÿ“•, ๐Ÿค“)" - type: not-contains value: "explanation"